[VBA AUTOCAD]创建循环
我从这样的情况开始我必须为每次迭代创建一个循环,允许我选择一个组的段(在图片中,我有5个组,用红色标记),因此我有5个“盒子/容器”(在这种情况下,可以是任何数字),列出相应组的每个段。
我试着使用
Dim objSset(J)作为AcadSelectionSet
尺寸J为整数
或
Dim objSset(J)作为集合
尺寸J为整数
但我总是得到错误“需要常数表达式”。
我可以用什么来运行这样的东西?
是否有可以使用的对象容器? 我刚刚快速浏览了你的帖子,所以我可能错过了一些东西,但是把每组线添加到AutoCAD组中怎么样?
Dim oSSetGroup As AcadGroup
Set oSSetGroup = ThisDrawing.Groups.Add("SG") 'SG = group name as string
oSSetGroup.name= "GroupName"
Dim AddItem(0) As AcadEntity
Set AddItem(0) = SSet(X1) 'SSet(X1) are items from your selection set
oSSetGroup.AppendItems AddItem 'AddItem is the name of the AcadEntity in previous step
然后你可以用组名呼叫你的组。。。例如
2 除非明确设置数组大小,否则将引发错误:
Dim objSset(4)作为AcadSelectionSet
或设置为动态数组:
Dim objSset()作为AcadSelectionSet
如果使用动态数组(看起来这就是你要去的方向),则必须根据需要对其进行“重拨”。
有关步骤,请参阅此链接。
http://msdn.microsoft.com/en-us/library/aa140074(v=办公室10)。aspx公司 SEANT-在另一个线程(这里)中讨论的代码中,我最终使用了“ReDim Array(variable)as XXXXX”,效果很好。我不需要把它作为一个动态数组来调暗。。。这可以练习吗? 变量是处理动态数组的常用方法。只是变量必须在Dim“ming”或Redim“ing”之前分配一个整数值。
回顾OP,在声明数组之前,发布的前两个代码段没有分配值类型。然而,代码标签中的例程确实声明了;尺寸j为整数。
由于整数值类型自动初始化为0,因此这实际上可能工作正常。错误(“需要常数表达式”)时给出的信息使我相信,在没有常数(或动态数组的空括号)的情况下使数组变暗是原因。
页:
[1]