VBA-单元格值的用户名



帮助我:我有两个UserForms:UF123UF456
我想要来自Sheet6.Cells(11, 12)=UF123UF456: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

相关内容

最新更新