我有一个包含大量工作表的工作表,每个工作表都包含一些具有特定背景颜色的行 是否可以删除工作表中具有特定颜色(在我的情况下为黄色)背景的所有单元格或行的背景颜色
答案 0 :(得分:0)
是的,这是可能的。您必须检查特定范围的Range.Interior.Color值。在VBA中,这将是这样的:
If ActiveWorksheet.Range("A1").Interior.Color = RGB(255,255,0) Then
'Do something
End If
在这种情况下, RGB(255,255,0)
为黄色。您也可以使用所有其他值。见RGB Function。要删除颜色,请使用:
Range("A1").Interior.Pattern = xlNone
如果您需要进一步的帮助,请提供有关您的问题的更多详细信息和/或发表评论。
您可能还想查看以下链接:Range.Interior,Interior.Color。
编辑:根据您的示例数据,您可能希望从“E”,“F”,“G”和“H”列中的各种工作表中删除绿色。绿色的RGB是RGB(146,208,80)
。这段代码应该做的工作:
Sub removeColor()
Dim lastRow As Long
Dim ws As Worksheet
Dim i As Long
Dim color As Long
color = RGB(146, 208, 80)
For Each ws In ThisWorkbook.Worksheets
lastRow = ws.Range("A65536").End(xlUp).Row
For i = 3 To lastRow
If ws.Range("E" & i).Interior.color = color Then
ws.Range("E" & i).Interior.Pattern = xlNone
End If
If ws.Range("F" & i).Interior.color = color Then
ws.Range("F" & i).Interior.Pattern = xlNone
End If
If ws.Range("G" & i).Interior.color = color Then
ws.Range("G" & i).Interior.Pattern = xlNone
End If
If ws.Range("H" & i).Interior.color = color Then
ws.Range("H" & i).Interior.Pattern = xlNone
End If
Next i
Next ws
End Sub
编辑:如果要检查所有单元格的颜色,请使用:
Sub removeColor()
Dim ws As Worksheet
Dim cell as Range
Dim color As Long
color = RGB(146, 208, 80)
For Each ws In ThisWorkbook.Worksheets
For Each cell in ws.UsedRange
If cell.Interior.Color = color Then
cell.Interior.Pattern = xlNone
End If
Next cell
Next ws
End Sub
答案 1 :(得分:0)
这可能会解决您的问题:
For i = 1 To Sheets.Count
On Error GoTo nex:
Sheets(i).Activate
For j = 1 To ActiveSheet.Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row
For k = 1 To ActiveSheet.Cells.Find("*", SearchOrder:=xlByColumns, LookIn:=xlValues, SearchDirection:=xlPrevious).Column
'65535 equals yellow
'5296274 equals green
If ActiveSheet.Cells(j, k).Interior.Color = 65535 Then ActiveSheet.Cells(j, k).Interior.Pattern = xlNone
Next
Next
nex:
Next
循环遍历所有工作表并在所有使用过的单元格中查找背景颜色。
要获得代表颜色的数字,您只需将颜色为所需颜色的A1,然后运行以下代码:
MsgBox (ActiveSheet.Cells(1, 1).Interior.Color)
希望我能提供帮助。