将 ListBox 控件对象传递给需要 ListBox 作为参数的函数
Passing a ListBox control object to a function requiring a ListBox as argument
我正在查看表单中的所有控件元素,并希望将所有列表框传递给另一个函数。
代码如下所示:
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)
去掉括号,所以:
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.ControlType = acListBox Then
Save ctl
End If
Next ctl
VBA对括号很挑剔
我强烈建议您使用 Save 以外的其他名称作为您的函数名称,这很容易打乱 VBA。
我正在查看表单中的所有控件元素,并希望将所有列表框传递给另一个函数。 代码如下所示:
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)
去掉括号,所以:
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.ControlType = acListBox Then
Save ctl
End If
Next ctl
VBA对括号很挑剔
我强烈建议您使用 Save 以外的其他名称作为您的函数名称,这很容易打乱 VBA。