vba - 将切换按钮分配给类模块的问题
问题描述
谁能帮我在这里做错了什么?控件未附加到类!
我的班级模块: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
解决方案
Dim Coll As Collection
需要是模块级别的声明,否则在例程结束后立即清除。
您还需要初始化该变量:
Set coll = New Collection
推荐阅读
- scala - akka 持久性不起作用
- sapui5 - 未在同一项目上触发选择事件
- python - 图像处理:如何检测图像中票据的边界
- excel-formula - 消除数据验证列表中空白单元格值的方法
- scip - 我得到分段错误\更改 feastol dafault 值
- widget - 如何从颤动的无状态小部件中获取矩形
- url - 更改 cli 生成的 VueJS 项目的根路径
- javascript - Ember 发生错误:断言失败:在没有有效事件名称的情况下调用
- javascript - 为什么 '.attr("x", dx = d3.event.x)' 有效?
- c# - Azure 服务总线“分配的超时”异常