如何在 VBA 中突出显示列的单元格时合并多个条件?

How can I incorporate multiple conditions in highlighting cells of a column in VBA?

我有一个 sheet,在 excel 中有多个数据列,如果数字小于 1.0,我想用红色突出显示一个名为 "FCCR" 的特定列的单元格,并且另一列的内容(旨在解释为什么某些内容 <1.0)为空。

我想我使用如下逻辑找到 FCCR 列:

Dim fccrHeader as Range

Set fccrHeader = ActiveSheet.Rows(1).Find("FCCR", lookat:=xlWhole)

我卡住的地方是考虑如何突出显示单元格 IF 且仅当 FCCR 值小于 1.0 且评论列为空时。我是否有正确的想法来查找 FCCR 列 header?非常感谢。

我已经尝试并测试了以下内容,它确实如您所愿:

Sub foo()
Dim val As Variant
Dim ColumnNumber As Long
Set val = Sheet1.Rows(1).Find("FCCR", lookat:=xlWhole)
ColumnNumber = val.Column
LastRow = Sheet1.Cells(Sheet1.Rows.Count, ColumnNumber).End(xlUp).Row
For i = 1 To LastRow
    If Sheet1.Cells(i, 12).Value = "" Then 'Change the number 12 to reflect the column which might be empty
        If Sheet1.Cells(i, ColumnNumber).Value < 1 Then
            Sheet1.Cells(i, ColumnNumber).Interior.ColorIndex = 3 '3 is equals to red
        End If
    End If

Next i
End Sub

您可以为此使用条件格式,使用公式吗?

试试这样的东西?我将其放入 Active-X 控制按钮中,但如果需要,您可以在 worksheet_change 上进行。与您可能从其他用户那里找到的内容相比,它有点啰嗦

Private Sub CommandButton1_Click()

Dim fccrHeader As Range
Dim col, otherCol, row As Integer

Set fccrHeader = ActiveSheet.Rows(1).Find("FCCR", lookat:=xlWhole)
col = fccrHeader.Column
otherCol = 7  ' comment column

For row = 2 To 10 'end of data constant or use search
   If Cells(row, col).Value < 1 And Cells(row, otherCol).Value = "" Then
       'also highlights if both are empty, add that logic to check for ""

       With Cells(row, col).Interior
           .Pattern = xlSolid
           .PatternColorIndex = xlAutomatic
           .Color = 255
           .TintAndShade = 0
           .PatternTintAndShade = 0
       End With
    End If
Next row

End Sub