VBA - 用户表单名称到单元格值

VBA - Userform name to cell value

帮助我: 我有 2 个用户表单:UF123UF456
我想要来自 Sheet6.Cells(11, 12) = UF123UF456 的呼叫名称: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