VBA图形集合

3
我希望能够将按钮存储在某种集合中,比如ArrayList, 以便我可以动态地添加和删除。我尝试使用Collection,但当ar.Add()被调用时出现错误。 对象不支持此属性或方法。
 Public Sub removeAllFormsWithAdd()
 Dim myshape As Shape
Dim ar As Collection
For Each myshape In ActiveSheet.Shapes
    If (myshape.FormControlType = xlButtonControl) Then 
    If (myshape.TextFrame.Characters.Text = "name") Then
        ar.Add (myshape)
        Debug.Print "next shape:" & myshape.TextFrame.Characters.Text & "-"
    End If
    End If
    Next myshape
End Sub

我该如何获取它?

1个回答

3

ar.Add()没有被执行,因为arNothing。您应该将其初始化为New Collection

除此之外,删除括号:

ar.Add myshape

使用括号时,您试图将形状对象的默认属性值添加到集合中,但是Shape没有默认属性。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接