2017-06-29 70 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 
相关问题