小编Thu*_*gle的帖子

将复选框和事件处理程序动态添加到工作表

在我的 BI 列中的工作表中有组件名称 在列 AI 中希望有动态添加的复选框,因为 B 列中的名称列表会随着时间的推移而增加

我需要能够执行以下操作: - 处理事件 (onclick) 作为勾选/取消勾选复选框隐藏/取消隐藏另一个工作表中的行 - 在我循环浏览另一个模块中的复选框时返回每个复选框的状态(来自commandbox) 并根据状态是否执行操作 - 修改每个复选框的状态,因为我有 1 个命令框来勾选它们,还有 1 个命令框来取消勾选它们

到目前为止,我有一个工作原型,但我有两个问题:1)复选框没有链接到 A 列中的单元格,它们只是在我创建它们时定位 2)复选框不是动态的,我手动创建它们并且有为每个复选框(> 50 个复选框)编写一个事件处理程序 (onclick)

我试图创建一个代码来动态添加复选框并创建一个类模块来处理事件,但我真的被卡住了..我复制并修改了一些最初用于用户表单的代码,并设法使其在一个userform,但我宁愿将所有内容都放在工作表上,如上所述。

这是类模块代码(命名为:clsBoxEvent)

Option Explicit
Public WithEvents cBox As MSForms.CheckBox

Private Sub cBox_Click()
MsgBox cBox.Name
End Sub
Run Code Online (Sandbox Code Playgroud)

这是我作为模块编写的代码。我打算将它放在一个命令按钮的事件 (onclick) 中,我打算单击该按钮以更新复选框列表。除非这不是必需的,因为有一种方法可以在 B 列中的单元格不为空时立即创建复选框?

我感谢您的意见。

Dim chkBoxEvent As clsBoxEvent
Dim chkBox As MSForms.CheckBox
Dim chkBoxColl As Collection

Private Sub chkBox_update()
Dim i As Integer
Set chkBoxColl = New Collection

For i = 1 To …
Run Code Online (Sandbox Code Playgroud)

vba dynamic worksheet event-handling

0
推荐指数
1
解决办法
9732
查看次数

标签 统计

dynamic ×1

event-handling ×1

vba ×1

worksheet ×1