【发布时间】:2019-09-05 07:34:08
【问题描述】:
我正在处理一个表格,在该表格中我插入了一些复选框(表单控件),这些复选框链接到在选中任一复选框时返回 True 或 False 的单元格。 我写了一个代码,应该根据返回的值改变单元格的颜色。 代码工作正常,但只有当我双击单元格并通过按 Enter 验证,或者当我通过按 F5 或单击按钮运行 Sub 时。 (我使用了一个类似的代码,在另一个项目中自动更新所有内容,但在这里似乎不起作用)
勾选复选框后,如何使 Sub 自动运行(或工作表更新)?
代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("A2:Q21"), Range(Target.Address)) Is Nothing Then
Dim cell As Range
For Each cell In ActiveWorkbook.Sheets("Sheet1").Range("A2:Q21")
If cell.Value = "True" Then
cell.Interior.Color = vbGreen
ElseIf cell.Value = "False" Then
cell.Interior.Color = vbRed
End If
Next
End Sub
我知道我可以使用条件格式,但这张表格会迅速扩大,而且我看不到自己复制粘贴数百个复选框
随着工作表的展开,我认为最好包含“lastRow”语句,因为我将使用 UserForm 在底部添加新行
谢谢!
【问题讨论】: