"范围"添加新行时,对象必须移动

时间:2015-11-07 13:20:35

标签: vba excel-vba excel

我尝试根据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.我怎样才能确保当添加了行,正确的行仍然是彩色的。当然我可以改变"范围"手动值,但我有很多,所以改变所有需要很长时间,必须有另一种方法来做...

1 个答案:

答案 0 :(得分:2)

如果您定义了命名区域(Ctrl-F3),XL将在该范围内插入列时扩展定义。

Worksheets("sheet1").Range("test1_range").Interior.Color = varColor1

如果在命名范围的左边缘插入一列,请小心 - 它不会包含在命名范围内。