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