【发布时间】:2016-02-06 02:07:16
【问题描述】:
我正在使用这个:
Worksheet_Change(ByVal Target As Range)
出于多种目的从我的代码中运行一部分。现在我想做同样的事情,但只在某个范围内的值发生变化时运行它。我尝试了以下方法,但没有成功:
Worksheet_Change(ByVal Target As Range("C5:H5"))
代码逐一检查单元格列表,每个有值的单元格将变为绿色,每个空单元格将变为红色。逐个执行此操作时,您不需要选择单元格,但是由于要着色的单元格数量众多,因此我循环这部分以防止我的代码变得非常长。
通过仅在更改特定范围内的单元格时运行代码,我的 Excel 工作表中的用户仍然能够编辑工作表的其他部分,而无需在每次输入后更改所选单元格。
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("MainSheet").Range("C5").Select
Do While ActiveCell.Offset(-1, 0) <> ""
If ActiveCell.Value = "" Then
ActiveCell.Offset(-1, 0).Interior.Color = RGB(255, 0, 0)
Else: ActiveCell.Offset(-1, 0).Interior.Color = RGB(0, 255, 0)
End If
ActiveCell.Offset(0, 1).Select
Loop
End Sub
【问题讨论】:
-
Sheets("MainSheet")和活动工作表是同一个工作表吗?