将 ListBox 控件对象传递给需要 ListBox 作为参数的函数
Posted
技术标签:
【中文标题】将 ListBox 控件对象传递给需要 ListBox 作为参数的函数【英文标题】:Passing a ListBox control object to a function requiring a ListBox as argument 【发布时间】:2015-09-08 09:35:20 【问题描述】:我正在检查表单中的所有控件元素,并希望将所有 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 Control Object 转换为 ListBox 对象
Dim list As ListBox
Set list = ctl
然后它告诉我与我的第一个示例相同(错误 424)
【问题讨论】:
【参考方案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。
【讨论】:
谢谢,这行得通。从来没有在 vba 的括号后面。以上是关于将 ListBox 控件对象传递给需要 ListBox 作为参数的函数的主要内容,如果未能解决你的问题,请参考以下文章
〝WPF〞中的〝ListBox〞、〝ListView〞和〝DataGridView〞有啥区别?
WPF中的ListBox,ListView和DataGridView有啥区别
如何通过 HtmlDocument.InvokeScript 将对象作为参数传递给 javascript