Excel 更改表格中特定单元格的字体颜色
我有一个VBA过程,它循环遍历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
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
。