VBA - 用户表单名称到单元格值
VBA - Userform name to cell value
帮助我:
我有 2 个用户表单:UF123
和 UF456
我想要来自 Sheet6.Cells(11, 12)
= UF123
或 UF456
的呼叫名称:UForm = Sheet6.Cells(11, 12).Value
我要设置 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
它将显示 1
。
此外,您无法使用 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
帮助我:
我有 2 个用户表单:UF123
和 UF456
我想要来自 Sheet6.Cells(11, 12)
= UF123
或 UF456
的呼叫名称:UForm = Sheet6.Cells(11, 12).Value
我要设置 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
它将显示 1
。
此外,您无法使用 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