Vba 更改多个文本框的事件

Vba 更改多个文本框的事件,vba,Vba,我已经使用类模块为多个文本框编写了一个更改事件,但我观察到的是我的“oControl”Me。控件给出False,而不是控件。我还有别的办法吗 Private m_oCollectionOfEventHandlers As Collection Private Sub UserForm_Initialize() Set m_oCollectionOfEventHandlers = New Collection Dim oControl As Control For Eac

我已经使用类模块为多个文本框编写了一个更改事件,但我观察到的是我的“oControl”Me。控件给出False,而不是控件。我还有别的办法吗

Private m_oCollectionOfEventHandlers As Collection
Private Sub UserForm_Initialize()

    Set m_oCollectionOfEventHandlers = New Collection
    Dim oControl As Control
    For Each oControl In Me.Controls
        If TypeName(oControl) = "TextBox" Then
            Dim oEventHandler As Class1
            Set oEventHandler = New Class1
            Set oEventHandler.TextBox = oControl
            m_oCollectionOfEventHandlers.Add oEventHandler
        End If

    Next oControl
End Sub

'CLASS MODULE
Private WithEvents m_oTextBox As TextBox
Public Property Set TextBox(ByVal oTextBox As TextBox)
    Set m_oTextBox = oTextBox
End Property
Private Sub m_oTextBox_Change()
MsgBox ("Hello")
End Sub

尝试将oControl声明为对象,而不是只看到控件的默认属性值。您应该能够忽略这一点并继续。您是否从中得到任何实际错误?我想将我的文本框限制在0到400之间,在我的情况下,大约有100个Tetboxs我的texbox更改事件未被触发