簡體   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