如何使用VBA更改单元格的格式化字体颜色?

时间:2017-06-29 15:02:51

标签: excel vba excel-vba

我想根据条件在Excel工作表中选择行,然后编辑同一行中其他单元格的格式。

我知道我可以使用自动过滤器选择行(列n等于“”):

Sub beautify()

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

End Sub 

现在如何将我选择的行的列F的字体更改为白色。

2 个答案:

答案 0 :(得分:2)

您可以使用VBA使用.Interior.ColorIndex = RGB(r, g, b) : red更改单元格的背景颜色,并使用.Font.Color = RGB(r, g, b) : red更改单元格内部文本的字体颜色 应该定义更改这些属性的范围,例如在您的问题中由列和您选择的行提及,所以说您选择了列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

答案 1 :(得分: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