代码之家  ›  专栏  ›  技术社区  ›  Mahhdy

将切换按钮分配给类模块时出现问题

  •  0
  • Mahhdy  · 技术社区  · 6 年前

    有谁能帮我解决我在这里做错的事吗?控件未附加到类!

    我的课程模块: CTGLBTN

    Option Explicit
    Public WithEvents tgl1 As MSForms.ToggleButton
    Private ac$
    
    Public Property Get ACNumber() As String
        ACNumber = ac
    End Property
    
    Public Property Let ACNumber(value As String)
        ac = value
    End Property
    
    Private Sub tgl1_Click()
    ' do something here
    End Sub
    

    这里是我将窗体控件分配给类的地方。

    Dim Ctgl As CTglBtn
    Dim Coll As Collection
    
    Private Sub UserForm_Initialize()
    Dim aclist As Range
    
    Set aclist = ThisWorkbook.Sheets("panel").Range("acnum")
    
        For i = 1 To 10
            Set Ctgl = New CTglBtn
            Set Ctgl.tgl1 = Me.Controls("TB" & i)
            Ctgl.ACNumber = aclist.Cells(i + 1, 1)
            Me.Controls("TB" & i).Caption = Ctgl.ACNumber
            Coll.Add Ctgl
            Set Ctgl = Nothing
        Next
    '        MsgBox Coll.Count
        End Sub
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Rory    6 年前

    Dim Coll As Collection 必须是模块级声明,否则在例程结束时立即清除。

    您还需要初始化该变量:

    Set coll = New Collection