我尝试根据if语句为不同的行着色。例如:
' # 1
If (test = True) Then
Worksheets("sheet1").Range("A1:J1").Interior.Color = varColor1
Else
Worksheets("sheet1").Range("A1:J1").Interior.Color = varColor2
End If
' # 2
If (test2 = True) Then
Worksheets("sheet1").Range("A2:J2").Interior.Color = varColor1
Else
Worksheets("sheet1").Range("A2:J2").Interior.Color = varColor2
End If
' # 3
'...etc
我的问题是,如果我在Excel工作表中添加一个新行,那么"范围"变得不对。例如,如果我在A和B之间添加一行,程序将为新插入的行着色(因为这个新插入的行变为B),而我想要着色的实际B行现在是C.我怎样才能确保当添加了行,正确的行仍然是彩色的。当然我可以改变"范围"手动值,但我有很多,所以改变所有需要很长时间,必须有另一种方法来做...
答案 0 :(得分:2)
如果您定义了命名区域(Ctrl-F3),XL将在该范围内插入列时扩展定义。
Worksheets("sheet1").Range("test1_range").Interior.Color = varColor1
如果在命名范围的左边缘插入一列,请小心 - 它不会包含在命名范围内。