帮助我:我有两个UserForms:UF123
和UF456
我想要来自Sheet6.Cells(11, 12)
=UF123
或UF456
:UForm = Sheet6.Cells(11, 12).Value
的调用名称
I想要设置UserForms(UForm).ComboBox5.Value = abc
但它没有运行。
Dim UForm As String
UForm = Sheet6.Cells(11, 12).Value
UserForms(UForm).ComboBox5.Value = 5
请注意,这不能工作,因为UserForms
只包含当前实际显示的用户表单。
你可以通过轻松测试
Debug.Print VBA.UserForms.Count
如果没有显示用户表单,并且您进行,它将显示0
UF123.Show vbModeless
Debug.Print VBA.UserForms.Count
它将显示CCD_ 10。
此外,您不能使用UserForms("UF123")
通过其名称访问它,这是不受支持的
所以只有一个变通方法:
Dim UForm As Object
Select Case Sheet6.Cells(11, 12).Value
Case "UF123"
Set UForm = New UF123
Case "UF456"
Set UForm = New UF456
Case Else
MsgBox "not found"
End Select
UForm.ComboBox5.Value = 5
UForm.Show
Set UForm = Nothing