combobox和文本框的VBAdynamic数组单击事件

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

用户窗体:

Option Explicit Dim comboboxBoxColct As New Collection Dim textboxBoxColct As New Collection Private Sub UserForm_Activate() Dim comboboxEvent As Class1 Dim textboxEvent As Class1 '..lots more code within here If LCase(TypeName(controller(i))) = "combobox" Then Set comboboxEvent = New Class1 Set comboboxEvent.comboboxBox = controller(i) comboboxBoxColct.Add comboboxEvent ElseIf LCase(TypeName(controller(i))) = "textbox" Then Set textboxEvent = New Class1 Set textboxEvent.textboxBox = controller(i) textboxBoxColct.Add textboxEvent End If End Sub 

1类:

 Option Explicit Public WithEvents comboboxBox As MSForms.ComboBox Public WithEvents textboxBox As MSForms.TextBox Private Sub comboboxBox_Click() MsgBox "worked" End Sub Private Sub textboxBox_Click() MsgBox "worked" End Sub 

在这里输入图像描述

上面的代码在将它用于combobox工作得很好 。 但是,一旦我到达该数组中文本框,它永远不会popupmsgbox。

我猜它可能与该数组的数组号码,因为它可能正在寻找一个0,而不是数字是在数组6,所以它从6开始,而不是0,因为它的第一个文本框在数组中看到。

我能做些什么才能让他们在同一arrays中工作?

嗯…似乎VBA中的文本框没有Click事件,所以当我改变它来处理Change (no pun intended)事件时,它会显示popup框,如果我在文本框中键入一个字母。

 Private Sub textboxBox_Change() 'was textboxBox_Click() MsgBox "worked" End Sub