Excel 更改表格中特定单元格的字体颜色

Excel 更改表格中特定单元格的字体颜色,excel,vba,formatting,Excel,Vba,Formatting,我有一个VBA过程,它循环遍历Excel表格的行并更新单元格值: Public Sub LoadRecords() Dim n As Long With DataSheet.ListObjects(tblName) For n = 1 To .ListRows.Count If UCase(.ListColumns(colNameLoad).DataBodyRange(n).Value) = "Y" Then

我有一个VBA过程,它循环遍历Excel表格的行并更新单元格值:

Public Sub LoadRecords()
    Dim n As Long
    With DataSheet.ListObjects(tblName)
        For n = 1 To .ListRows.Count
            If UCase(.ListColumns(colNameLoad).DataBodyRange(n).Value) = "Y" Then
                .ListColumns(colNameMessage).DataBodyRange(n) = response
            End If
        Next
    End With
End Sub
我想增强代码,这样,除了更新单元格值外,它还可以更改单元格字体的颜色

我可以在整个专栏中这样做:

.ListColumns(colNameMessage).Range.Font.colorIndex = 48

但是,我不知道如何在循环中更改特定单元格/行的字体颜色。

您已经非常接近了
.ListColumns(colNameMessage).DataBodyRange(n)
是单个单元格,因此:

.ListColumns(colNameMessage).DataBodyRange(n).Value = response 
.ListColumns(colNameMessage).DataBodyRange(n).Font.ColorIndex = 48

如(现已删除)评论中所述,最好使用
.Font.Color
而不是
.Font.ColorIndex
,因为后者只是当前调色板中的索引,而不是绝对颜色。

您已经非常接近了
.ListColumns(colNameMessage).DataBodyRange(n)
是单个单元格,因此:

.ListColumns(colNameMessage).DataBodyRange(n).Value = response 
.ListColumns(colNameMessage).DataBodyRange(n).Font.ColorIndex = 48

如(现已删除)评论中所述,最好使用
.Font.Color
而不是
.Font.ColorIndex
,因为后者只是当前调色板中的索引,不是绝对颜色。

关于使用
.Font.color
而不是
.Font.ColorIndex
:我假设
.Font.color
的值类似于
RGB(0,0,0)
。如何将RGB(0,0,0)放入常量中?已经有很多内置常量。。。但是
RGB(0,0,0)
仅仅等同于
0
。关于使用
.Font.Color
而不是
.Font.ColorIndex
:我假设
.Font.Color
的值类似于
RGB(0,0,0)
。如何将RGB(0,0,0)放入常量中?已经有很多内置常量。。。但是
RGB(0,0,0)
只是等价于
0