对不好的标题感到抱歉,但由于英语是我的第二语言,我不知道怎么说。
我有一个名为" frmMenu"使用名为" txtName"。
的文本框我在模块中有代码:
Public Sub TextMenu(ByVal SomeVariable As String)
frmMenu.controls(SomeVariable).text="hi"
end sub
我使用参数" txtName"来调用模块。指向表单上的文本框
如果我有多个具有相同文本框名称的表单,我如何指向多个表单?类似于" .controls"代码,但表格。
谢谢
答案 0 :(得分:1)
您需要遍历VBA.UserForms
集合中的所有已加载用户表单以及表单上的每个控件。
您可以让函数通过提供其名称来返回控件。
Public Function ControlByName(ByVal Name As String) As Object
Dim f As UserForm, c As Control
For Each f In VBA.UserForms
For Each c In f.Controls
If c.Name = Name Then
Set ControlByName = f.Controls(Name)
Exit For
End If
Next c
Next
End Function
然后调用它:
Sub T()
Dim f As TextBox2
Set f = ControlByName("TextBox1")
Debug.Print f.Text
Dim b As CommandButton
Set b = ControlByName("CommandButton1")
Debug.Print b.Caption
End Sub