但是我有一个问题。是否可以使用VBA识别列/行是否包含颜色?例如,我有5000列的A到Z列。在第630行中,有几列用红色突出显示,我想在AA列中将其标记为“ RED”。另一个示例,在行2533的G列中,红色突出显示,并且在AA列中也应指示“ RED”。不包含任何颜色的行应标记为“白色”。在VBA中可以实现这种情况吗?
答案 0 :(得分:1)
类似这样的东西:
注意,它将明智地检查行!!因此,如果您在G列中有颜色,但在A列中没有。这将在AA列中给您单词“ color”。我还选择检查背景色。不是特别是红色,因为有时人们会选择不同的“红色”。
如果只希望红色(RGB 255,0,0),请使用第二个IF语句并注释掉第一个。
Sub CheckColurRows()
Dim myRange As Range
Dim cl As Variant
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Set myRange = ws.Range("A1:Z5000") 'Set range
For Each cl In myRange 'Loop through each cell in "myRange
If cl.Interior.ColorIndex <> xlColorIndexNone Then 'Check if cell has any background colour (not only red)
'If cl.Interior.Color = RGB(255, 0, 0) Then 'Check if cell only has red colour
ws.Cells(cl.Row, 27) = "Colour" 'If cell has colour, then print the word "Colour" in Column 27 (Column AA)
Else
If ws.Cells(cl.Row, 27) <> "Colour" Then ws.Cells(cl.Row, 27) = "White" 'If cell already have the word colour in column AA, don't overwrite with "white"
End If
Next cl
End Sub
结果将如下所示:
答案 1 :(得分:1)
Sub FFF()
Dim rngRow As Range, cell As Range, red_color&
red_color = RGB(255, 0, 0)
For Each rngRow In Range("A1:Z5000").Rows
For Each cell In rngRow.Cells
cell = IIf(cell.Interior.Color = red_color, "RED", "WHITE")
Next
Next
End Sub