Я прогнозировал выполнение так: имеется таблица в одной ячейке которой значение "1", имеется статичный блок с одним атрибутом у которого значение (text string) скажем "2", впоследствии оно меняется на значение "1",при запуске кода сопоставляются значение ячейки и значение атрибута блока и этот блок вставляется в определенную ячейку (может это и бредовая идея конечно). Но это сейчас это уже не столь важно.
Мне непонятно почему не выполняется отдельно кусок кода где извлекается атрибут из одной конкретной вставки блока и его text string записывается в переменную:
Sub Attinvar()
Dim ssName As String
Dim ssetobj As AcadSelectionSet
Dim blk2 As AcadBlockReference
Dim Attributes As Variant
On Error Resume Next
ThisDrawing.SelectionSets.Item(ssName).Delete
Set ssetobj = ThisDrawing.SelectionSets.Add(ssName)
Dim gpCode(0 To 1) As Integer
Dim dataValue(0 To 1) As Variant
gpCode(0) = 0: dataValue(0) = "INSERT"
gpCode(1) = 2: dataValue(1) = "111"
ssetobj.Select acSelectionSetAll, , , gpCode, dataValue
For Each blk2 In ssetobj
Attributes = blk2.GetAttributes
t1 = Attributes(0).TextString
Next
End Sub
или наоборот требуется изменить значение самого text string:
Sub ChangeValue()
Dim ssName As String
Dim ssetobj As AcadSelectionSet
Dim blk2 As AcadBlockReference
Dim Attributes As Variant
On Error Resume Next
ThisDrawing.SelectionSets.Item(ssName).Delete
Set ssetobj = ThisDrawing.SelectionSets.Add(ssName)
Dim gpCode(0 To 1) As Integer
Dim dataValue(0 To 1) As Variant
gpCode(0) = 0: dataValue(0) = "INSERT"
gpCode(1) = 2: dataValue(1) = "111"
ssetobj.Select acSelectionSetAll, , , gpCode, dataValue
For Each blk2 In ssetobj
Attributes = blk2.GetAttributes
Attributes(0).TextString = "4"
Next
End Sub
Может что то нужно обновить, синхронизировать,регенерировать чтобы увидеть изменения (если код верный) или у меня вообще фундаментальные ошибки?
P.s.Как запустить код под отладчиком и проанализировать то что он покажет я пока не умею
.