如何删除图层状态?
我有一个命名的LayerState(Temp)我怎样才能让vba删除这个?
我认为你做不到 ;据我所知,分层状态不暴露于VBA 您可以通过命令行将其自动化
你可以打开图层管理器,然后发送键,字母;r“;将打开状态管理器
进入tere后,您可以使用alt和sndkeys访问命令,因为字母带有下划线
应该有效。 下面是我如何在lisp(ActiveX)中获得它们的列表,我认为您可以很容易地将其制作成VBA[代码如果';LayStDict#039;isn#039;如果出现错误,则当前图形中存在图层状态 ;希望这有帮助。 快速插入命令行一:
Public Sub DeleteLaterStateTemp()
ThisDrawing.SendCommand "-layer" & vbCr
ThisDrawing.SendCommand "a" & vbCr
ThisDrawing.SendCommand "d" & vbCr
ThisDrawing.SendCommand "temp" & vbCr & vbCr & vbCr
End Sub 这在v2004中似乎有效;也许这会有帮助
Public Sub DelLayerState()
Dim colLayers As AcadLayers
Dim objDict As AcadDictionary
Dim objLayerStates As AcadDictionary
Dim objXrec As AcadXRecord
Set colLayers = Me.Layers
If colLayers.HasExtensionDictionary Then
Set objDict = colLayers.GetExtensionDictionary
Set objLayerStates = objDict("Acad_LayerStates")
objLayerStates("temp").Delete
End If
End Sub
需要更多的错误检查和HANDS#039;未经全面测试 美好的 Dave,“谢谢你的帮助,但是……Vba哽咽了。”;Me.Layers“
想法? 试试看
ThisDrawing.Layers 工作得很漂亮
谢谢!
页:
[1]
2