vba-excel中有以下任务:
在 AutoCAD 中选择块,然后将两个值写入 Excel 列 - 块属性标记的名称 (*autocad)、单元格 A1 及其文本值、单元格 A2。对于样本中的所有块,依此类推。
在这种情况下,首先将标签名称写入列中(检查列中已写入的标签名称)。然后,根据标签名称,写入该标签的文本值。
每次这些都是 For..Next 周期。
请告诉我如何优化此类程序以提高速度:使用数组、类和集合?
示例代码:
For Each lBlockObj In objSelectionSet
Set lBlock = acadDoc.SelectionSets("TempSSet").Item(I - 1)
varAttributes = lBlockObj.GetAttributes
'добавление имен тэгов здесь без проверки что уже есть
For n = LBound(varAttributes) To UBound(varAttributes)
Cells(2, at_hed).Value = varAttributes(n).TagString
at_hed = at_hed + 1
Next n
'запись атрибутов
For r = 2 To Col_N1
For n = LBound(varAttributes) To UBound(varAttributes)
If varAttributes(n).TagString = Cells(2, r).Value Then ActiveCell.Offset(0, r - 2).Value = varAttributes(n).MTextAttributeContent
Next n
Next r
ActiveCell.Offset(1, 0).Activate
Set lBlock = Nothing
Next lBlockObj