【发布时间】:2018-03-12 05:58:08
【问题描述】:
当我单击工作表上的任何复选框时,我正疯狂地试图找到一种运行代码的方法。我看过多篇关于制作类模块的文章,但我似乎无法让它工作。
我的代码将填充 B 列以匹配 C 列。我在 C10 中手动输入的任何内容都将填充到 B10 中,即使 C10 是一个公式:=D9。因此,我可以在 D10 中输入 TRUE,C10 中的公式将得出:TRUE,然后代码填充 B10 以表示:TRUE。太棒了......诀窍是有一个链接到 D10 的复选框。当我单击复选框时,D10 显示为 TRUE,C10 中的公式显示为 TRUE,但仅此而已。 VBA 代码无法识别复选框单击。如果我然后单击工作表(选择更改),那么代码将运行,所以我知道我需要一个不同的事件。
将事件更改为“Checkbox1_Click()”很容易,但我希望它适用于我单击的任何复选框。经过几天的搜索和尝试不同的事情,我没有任何运气。
这是我目前正在运行的代码
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Long
For i = 3 To 11
Range("B" & i).Value = Range("c" & i)
Next i
End Sub
任何帮助将不胜感激。
【问题讨论】:
-
这是我发布的一些用于处理多个按钮的代码 .... 看看您是否可以调整它以满足您的需求... stackoverflow.com/questions/46381935/…
-
顺便说一句:你说你不能让类模块代码运行,但你没有发布任何引用类模块的代码。
-
为什么要使用循环来赋值? ....只需使用
Range("B3:B11") = Range("c3:c11").Value -
我应该在一开始就问...你有什么类型的复选框?
active-x control或form control..... 而且,您可以选择要使用的类型吗? -
我转到您发布的链接并创建了一个新工作簿,我将您提到的代码粘贴到工作表模块中,创建了一个类模块,然后创建了一个常规模块(Module1),发布在代码,与您拥有的完全一样。我不能让它做任何事情。我试图手动运行宏,但它弹出一个消息框说:用户定义的类型注释已定义。然后突出显示 BtnClass 模块中的以下代码部分:WithEvents ButtonGroup As MSForms.CommandButton