2017-06-29 139 views
1

我想根據條件在Excel工作表中選擇行,然後編輯同一行中其他單元格的格式。如何使用VBA更改單元格的格式化字體顏色?

我知道我可以使用自動篩選選擇行(列n等於「」):

Sub beautify() 

Dim rng As Range 
Set rng = ActiveSheet.Range("F60:AJ3272") 
rng.AutoFilter Field:=4, Field:=4, Criteria1:="" 

End Sub 

現在我該如何改變F列,我已經選擇了白線的字體。

回答

1

您可以使用VBA來更改使用.Interior.ColorIndex = RGB(r, g, b) : red細胞和細胞內的文本的字體顏色的背景顏色與.Font.Color = RGB(r, g, b) : red 範圍更改這些屬性應該定義,就像列mentionned在你的問題你選擇這樣的行說你選擇了F列和行12應該是這樣的:

Range("F12").Font.Color = -4142 

所以說,你想通過一列中的每一行滾動,並改變每個空白單元格的顏色你可以做的是:

Dim i As Long 

For i = 1 To Rows.Count 
'Column F is 6 
If Cells(i, 6).Value = "" Then 
    Cells(i, 1).Interior.ColorIndex = RGB(150, 0, 0) 
Next i 
+0

我怎樣才能使這項工作與我一起自動篩選?如果我輸入rng2 = rng.AutoFilter字段:= 4,字段:= 4,Criteria1:=「」我得到一個錯誤 –

+0

我會推薦你​​簡單地滾動你的所有行而不是使用靜態範圍。這樣你可以隔離一個單元格來修改 –

+0

你能舉個例子嗎?我只想對coloumn F中空白的行進行着色(並且因此希望自動化該過程) –

0

我略作改動你的代碼,它的工作:

Sub beautify() 

Dim i As Long 

For i = 1 To 50 
If Cells(i, 9).Value = "" Then 
    ActiveSheet.Range(Cells(i, 10), Cells(i, 31)).Font.Color = vbBlack 
    ActiveSheet.Range(Cells(i, 8), Cells(i, 8)).Font.Color = vbWhite 
End If 

Next i 

End Sub