VBA单击combobox上的单击事件

嘿,我有以下的VBA代码,允许我有一个dynamic创build的combobox和文本框上的单击事件到用户窗体上。

用户窗体:

Option Explicit Dim comboboxBoxColct As New Collection Private Sub UserForm_Activate() Dim comboboxEvent As Class1 Dim controller(100) As Object '..lots more code within here With controller(i) .Name = "cmdBOM" & i .Top = 10 .ForeColor = vbBlack .Height = 15 .FontName = "Times New Roman" .FontSize = 6 .AutoSize = False .Caption = "Add New Row" .BackColor = RGB(204, 255, 201) .TabStop = True .TabIndex = i End With Set comboboxEvent = New Class1 Set comboboxEvent.comboboxBox = controller(i) comboboxBoxColct.Add comboboxEvent End Sub 

1类:

 Option Explicit Public WithEvents comboboxBox As MSForms.ComboBox Sub SetCombobox(ctl As MSForms.ComboBox) Set comboboxBox = ctl End Sub Private Sub comboboxBox_Click() If comboboxBox.ListIndex > -1 Then MsgBox "You clicked on " & comboboxBox.Name & vbLf & _ "The value is " & comboboxBox.Value End If End Sub 

上面的代码工作得很好 。 但是,一旦我点击combobox,select一些东西,msgbox出现说:

你点击了

价值是

在查看_Click()事件时,没有.Name.Value的值,我不确定这是为什么? 我在Set comboboxBox = ctl上放置了一个断点,它似乎总是以“”出现

在这里输入图像描述

我能做些什么才能使这个工作?