vba形状的集合

时间:2010-10-23 12:42:56

标签: vba excel-vba excel

我想将按钮存储在某种集合中,arraylist,
这样我就可以动态添加和删除。

我尝试使用Collection但似乎不是选择,因为当达到ar.Add()时出现错误。

Object不支持此属性或方法。

 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 个答案:

答案 0 :(得分:3)

由于ar.Add()ar,因此无法联系到{p> Nothing。您应该将其初始化为New Collection

除此之外,删除括号:

ar.Add myshape

使用括号,您尝试向形状对象的默认属性的值添加集合,Shape没有默认属性。