繁体   English   中英

EXCEL VBA将选定的单元格更改为颜色

[英]EXCEL VBA change selected cells to colour

我正在尝试编写VB的代码,该代码将查看运行iff语句,然后如果为true,则更改为true的行的颜色。 目前,我只能更改一个单元格的颜色。

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

这样可行。 当我尝试更改此值以突出显示表中的单元格选择时。 我收到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

我花了很多时间在互联网上寻找并找不到任何答案,为什么这不起作用。 任何帮助将不胜感激。

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

要将列A的颜色更改为U,请使用以下方法:
A.Range("A" & j & ":U" & j).Interior.ColorIndex = 28您的行中缺少A列的行。

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

我没有通过任何PC进行测试,但是您可以尝试

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

祝好运

乔根·昂格(Jorgen Unger)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM