EXCEL VBA将所选单元格更改为彩色

我想写一个VB的peice将看运行一个iff语句,然后如果真的更改行是真正的颜色。 目前我可以得到它只改变一个单元格的颜色。

VB看起来像这样。

Sub Blue() Set A = Sheets("Analysis") Dim d Dim j d = 1 j = 1 Do Until IsEmpty(A.Range("B" & j)) If (A.Range("F" & j) <> A.Range("G" & j)) Or (A.Range("H" & j) <> A.Range("I" & j)) Then d = d + 1 A.Range("B" & j).Interior.ColorIndex = 28 End If j = j + 1 Loop End Sub 

这样可行。 当我尝试改变这个突出显示在表中的单元格的select。 我得到一个1004运行时错误Sub Blue()

 Set A = Sheets("Analysis") Dim d Dim j d = 1 j = 1 Do Until IsEmpty(A.Range("B" & j)) If (A.Range("F" & j) <> A.Range("G" & j)) Or (A.Range("H" & j) <> A.Range("I" & j)) Then d = d + 1 A.Range("A:U" & j).Interior.ColorIndex = 28 End If j = j + 1 Loop End Sub 

我花了大量的时间在互联网上查找,无法find任何答案,为什么这是行不通的。 任何帮助将是appreicated。

我使用VB,因为这将是VB的一大部分。

要更改列A到U的颜色,请使用以下命令:
A.Range("A" & j & ":U" & j).Interior.ColorIndex = 28 – 您的行中缺lessA列的行

要更改整行的颜色,请使用以下命令:
A.Range("B" & j).EntireRow.Interior.ColorIndex = 28

我不是由任何PC来testing它,但你可以试试这个

 A.Range("A:U").rows(j).Interior.ColorIndex = 28 

多于一个单元格的范围应该是这种格式“A1:U1”,您的代码等于“A:U1”。

你可以这样编码:

 A.Range("A" & j & ":U" & j).Interior.ColorIndex = 28 

我更喜欢这个代码:

 A.Range(Cells(j, 1), Cells(j, 21)).Interior.ColorIndex = 28 

祝你好运

约根·昂格尔