我将在我的表单中查看所有控件elemtens,并希望将所有ListBoxes传递给另一个函数。 守则如下:
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.ControlType = acListBox Then
Save (ctl)
End If
Next ctl
Private Sub Save(list As ListBox)
'Do something with list
End Sub
它给了我424运行时错误,告诉我需要一个对象。
当我尝试使用
时Save (ctl.Object)
我将收到2455运行时错误。
编辑:我还尝试使用
将ctl控件对象转换为ListBox对象Dim list As ListBox
Set list = ctl
然后它告诉我与我的第一个例子(错误424)相同
答案 0 :(得分:1)
摆脱括号,所以:
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.ControlType = acListBox Then
Save ctl
End If
Next ctl
VBA对括号非常挑剔。
我强烈建议您使用除Save之外的其他功能作为您的功能名称,这很容易破坏VBA。