warshing 发表于 2022-7-6 14:48:43

找不到密钥


Public Sub sele()
If Not IsNull(ThisDrawing.SelectionSets.Item("sel")) Then
Set sset = ThisDrawing.SelectionSets.Item("sel")
sset.Delete
End If
Set sset = ThisDrawing.SelectionSets.Add("sel")
sset.SelectOnScreen
End Sub

 
这些代码由其他功能使用。当运行上述代码时,应用程序出现错误“找不到键”。但是运行以下代码,就可以了
 

Public Sub selsets()
Dim sset As AcadSelectionSet
Dim str As String
Dim selmtxt As AcadMText
Dim getobj As AcadEntity

If Not IsNull(ThisDrawing.SelectionSets.Item("sel")) Then
Set sset = ThisDrawing.SelectionSets.Item("sel")
sset.Delete
End If
Set sset = ThisDrawing.SelectionSets.Add("sel")
sset.SelectOnScreen
For Each getobj In sset
If getobj.ObjectName Like "*Text" Then
Set selmtxt = getobj
   
   If selmtxt.TextString = "{\C7;0}" Then
   selmtxt.TextString = "0.01"
   selmtxt.Update
   End If
   End If
   Next
End Sub

CmdrDuh 发表于 2022-7-6 15:18:30

尝试在您的版本中减小sset。我想它不知道你想做什么

warshing 发表于 2022-7-6 15:44:40

在项目开始时,我将publice dim sset的sset作为acadselectionset进行了尺寸标注,并将其用于其他功能中。也许你是对的。我将尝试给sele()一个参数并优化所有子对象。

warshing 发表于 2022-7-6 15:52:21

我更改了代码如下
 

Function sele(aa As String) As AcadSelectionSet
Dim sset As AcadSelectionSet
On Error Resume Next
ThisDrawing.SelectionSets(aa).Delete
'Don't know the difference between "ThisDrawing.SelectionSets.Item("sel")"
Set sset = ThisDrawing.SelectionSets.Add(aa)
sset.SelectOnScreen
Set sele = sset
End Function
页: [1]
查看完整版本: 找不到密钥