excel - 如果单元格字体 = 红色,则使用 VBA 问题突出显示单元格
问题描述
我有一个使用条件格式突出显示特定单元格的宏。出于某种原因,它也会突出显示没有文本的单元格。作为一种解决方法,我已经做到了,只是使单元格中的文本变为红色。我希望然后添加另一个宏来突出显示具有红色字体/文本的单元格,这样空单元格就不会像以前那样突出显示。
此代码使特定单元格变为粗体:
Sub Highlight()
'
' Highlight good values
Application.ScreenUpdating = False
Dim ws As Worksheet, LC As Long
For Each ws In ActiveWorkbook.Worksheets
LC = ws.Cells(18, ws.Columns.Count).End(xlToLeft).Column
With ws.Range(ws.Cells(18, 3), ws.Cells(79, LC))
.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, _
Formula1:="=$C18", Formula2:="=$D18"
.FormatConditions(Range(ws.Cells(18, 3), ws.Cells(79, LC)).FormatConditions.Count).SetFirstPriority
With .FormatConditions(1).Font
.Bold = True
.Color = vbRed
.TintAndShade = 0
End With
End With
Next ws
Application.ScreenUpdating = True
End Sub
此代码尝试用红色字体突出显示单元格,但它不会更改单元格颜色 - 它不起作用
Sub cell_red()
Dim ws As Worksheet, LC As Long
For Each ws In ActiveWorkbook.Worksheets
LC = ws.Cells(18, ws.Columns.Count).End(xlToLeft).Column
For Each cell In ws.Range(ws.Cells(18, 3), ws.Cells(79, LC))
If cell.Font.Color = vbRed Then
cell.Interior.ColorIndex = 44
End If
Next
Next ws
End Sub
This may help:
https://answers.microsoft.com/en-us/msoffice/forum/all/conditional-formatting-ignoring-blank-cells/719f087c-5e30-4830-9b7d-0b93cffad357
not sure how to incorporate it though
解决方案
您是否绝对必须使用它,Conditional Formatting
或者您是否也愿意接受其他建议?当我阅读您的帖子时(在查看代码示例之前),我有一些想法。
我不喜欢做条件格式;对工作表进行一些小的更改,您创建的一个规则最终变成了一组适用于较小范围的 5-6 条规则。因此,我通常喜欢让一个循环为我完成所有的格式化。
综上所述,假设我们正在循环 A 列:
For i = 2 to iLastRow (or whatever, 200, etc.)
[ws].range("A" & i).interior.color = 16777215 'changing it to 'no fill' (in case it was colored before)
If [ws].range("A" & i) [rest of the condition] Then
[ws].range("A" & i).Interior.Color = [color no.]
end if
next i
这也.Interior.Color
适用.Cells(x,y)
。当然,它不会随着工作表内容的每次更改而动态更改,但是 A)我发现这比条件格式更让我头疼,并且 B)您可以将该格式循环放入与您的 main 不同的Sub
格式中,并且添加一个按钮以仅触发该格式子 - 因此您可以随时手动应用条件格式。或者,您可以将此格式代码添加到.Sub
Call
Sub Worksheet_OnChange
推荐阅读
- javascript - 三个数组之间的并集
- google-chrome - 在多个用户上打开 Google Chrome
- swift - Swift 4 WebkitView URL 更改没有发挥作用
- ocaml - 如何在 OCaml 中使用函子
- python-3.x - 使用 Pip3 安装的问题
- css - 如何在列表中的文本之前对齐伪标签?
- ios - iOS在更新`alpha`后设置`isHidden`
- c - 如何使用c中的指针计算矩阵的行列式?
- python - 为数据输入创建 GUI(Python?)
- unity3d - 从 Unity3D 运行代码时 Visual Studio Code 自动保存