如何使用具有一组控件的类
我尝试在下面的链接中调整解决scheme,使文本框的集合只允许数字。 我没有得到任何的错误,但是这个类不适用于文本框。
Excel VBA用户窗体 – 当有东西发生变化时执行Sub
类模块
Public WithEvents TextGroup As MSForms.TextBox Public Property Set Control(tb As MSForms.TextBox) Set TextGroup = tb End Property Private Sub TextGroup_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 Case Else KeyAscii = 0 End Select End Sub
用户窗体
Dim tbCollection As Collection Private Sub UserForm_Initialize() Dim obj As clsTextBox Dim ctrl As Control Set tbCollection = New Collection tbCollection.Add Me.tbAC tbCollection.Add Me.tbCR tbCollection.Add Me.tbHP For Each ctrl In tbCollection Set obj = New clsTextBox Set obj.Control = ctrl Next End Sub
您需要将obj对象放在集合中,而不是控件本身
未经testing:
Dim tbCollection As Collection Private Sub UserForm_Initialize() Dim obj As clsTextBox Dim arr Dim ctrl Set tbCollection = New Collection arr = Array(Me.tbAC, Me.tbCR, Me.tbHP) '<< edit: no Set For Each ctrl in arr Set obj = New clsTextBox Set obj.Control = ctrl tbCollection.Add obj Next End Sub