将ListBox控件对象传递给需要ListBox作为参数的函数

时间:2015-09-08 09:35:21

标签: vba listbox access-vba controls

我将在我的表单中查看所有控件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)相同

1 个答案:

答案 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。