当引用用户窗体对象时,"Varg"参数的目的是什么?

3
我一直认为在VBA中,我们无法在用户窗体创建/初始化时传递变量。然而,当我在对象名称后放置一个括号时,出现了一个工具提示,表明这可能并不一定是真的(或者更有可能是我误解了它)
因此,出于好奇,我尝试使用varg将一个变量传递给用户窗体:
但毫不意外,它并没有起作用。
那么,最终的问题是varg的目的是什么?对我来说,它实际上看起来像用于索引多个单独的用户窗体实例,因为它实际上似乎是属性.Item()的参数,而不是实际对象本身的参数,但我所知道的唯一创建多个用户窗体对象的方法是将它们设置为一个变量,例如:
Dim uf1 As MyUserForm, uf2 as MyUserform
Set uf1 = New MyUserform
set uf2 = New Myuserform

用户表单实际上可以被序列化和索引,使用这个 varg 变量的不同方式能够实现这一点吗?


注意:这不是关于如何将外部变量传递给用户表单的问题 - 我知道在初始化之后有许多方法可以实现这一点(通过对象代码模块中的 Public Property、Function 或 Variable 传递甚至是标准模块中的外部全局/公共变量,但不建议使用后者)。

1个回答

5

UserForm有一个默认属性 Controls,它返回Controls类的一个实例。

Controls类本身有一个默认属性Item(varg) As Object

因此,With New udfVendorDrillDown(varg)With New udfVendorDrillDown.Controls.Item(varg)是相同的,这可能不是您希望的结果。

仍然无法向UserForms构造函数传递参数。事实上,任何类的构造函数都无法传递参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接