当公式结果在表格的K列范围内更改时(“ K2:K5”),我希望表格中的整个行都用一种颜色填充。但是我只希望结果不等于0的情况下对行进行着色。
例如如果结果在K2中变化(且不等于0),则整个A2:L2行将被着色。 该公式引用您从下拉列表中选择的值(从excel菜单“数据”选项卡上的“数据验证”创建)。这些下拉列表与相关公式位于同一行(例如,“ D2:J2”)。下拉列表中的值是指表格外同一张纸上的范围。 到目前为止,我为工作表编写了一个代码,该代码涉及change事件,该事件使用带有将更改行颜色的子模块调用模块。
但是它不起作用,我也没有收到错误消息。
这是工作表更改事件的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "§D2:§J2" Then
Color_Row
End If
End Sub
目标地址应该适当地是整个范围,但是我不知道如何为此提供正确的语法。
以下是更改行颜色的代码:
Sub Color_Row()
Dim r As Long, c As Long 'r=rows in the excel sheet | c= value of cell in _
column k
Dim numrow As Long 'last row with data
Dim tblR As Long 'tablerow
numrow = TimeMeasure.Range("K" & Rows.Count).End(xlUp).Row
For r = 2 To numrow
tblR = r - 1
c = Cells(r, 11).Value
If c <> 0 Then
[TimeDist].Rows(tblR).Interior.Color = 12961279
Else
[TimeDist].Rows(tblR).Interior.Color = xlNone 'no fill color
End If
Next
End Sub
我进入了这段代码,并观看了c,r,numrow,tblR之类的变量,它们似乎都与我的表匹配(表的名称为TimeDist)。
我唯一注意到的是循环中没有值分配给c。我知道虽然这段代码可以在另一个工作簿中使用,但是然后我手动在表外的特定单元格中输入新值,这会更改表中的公式结果(然后行变为彩色)
非常感谢您接受任何帮助。
答案 0 :(得分:0)
非常感谢您提供的所有帮助我解决问题的信息! :)
它现在就像一种魅力!
此worksheet_calculate代码可以完成这项工作(尽管我更改了单元格范围):
Private Sub Worksheet_Calculate()
Dim Xrg As Range
Set Xrg = Range("L2:L5")
If Not Intersect(Xrg, Range("L2:L5")) Is Nothing Then
Color_Row
End If
End Sub