VBA如何忽略要突出显示的空单元格

时间:2017-08-03 19:07:06

标签: excel vba excel-vba

在这里的成员的帮助下,我解决了一个问题。 问题是

  1. 与ColumnO值相同时,ColumnB值为绿色。
  2. 当ColumnB值与ColumnO值不相同时,ColumnB值为黄色。
  3. 当ColumnO值不在ColumnB中时为红色。
  4. 现在我正面临一个新问题,它在#3中,当columnO突出显示红色时,它也突出显示空单元格。可能是因为ColumnB中没有空单元格,但它在sheet2 columnO中的值之间有一些空单元格,我希望那些空单元格在那里。知道如何忽略要突出显示的空单元格吗?

    Dim addr1 As String, addr2 As String
    With Worksheets("Only WR")
        With .Range(.Cells(1, "B"), .Cells(.Rows.Count, "B").End(xlUp))
            addr1 = .Cells(1).Address(False, True)
            addr2 = .Cells(1).Offset(0, 1).Address(False, True)
            .FormatConditions.Delete
            With .FormatConditions.Add(Type:=xlExpression, _
              Formula1:="=AND(" & addr2 & "=TEXT(,), ISNUMBER(MATCH(" & addr1 & ", 'Only WR'!$O:$O, 0)))")
                .Interior.ColorIndex = 4
            End With
            With .FormatConditions.Add(Type:=xlExpression, _
              Formula1:="=NOT(LEN(" & addr2 & "))")
                .Interior.ColorIndex = 6
            End With
        End With
    End With
    
    With Worksheets("Only WR")
        With .Range(.Cells(1, "O"), .Cells(.Rows.Count, "O").End(xlUp))
            addr1 = .Cells(1).Address(False, True)
            .FormatConditions.Delete
            With .FormatConditions.Add(Type:=xlExpression, _
              Formula1:="=ISNA(MATCH(" & addr1 & ", 'Only WR'!$B:$B, 0))")
                .Interior.ColorIndex = 3
            End With
        End With
    End With
    

2 个答案:

答案 0 :(得分:0)

不要理解你的问题。但是在选择中如果您只想选择具有常量的单元格,则可以尝试使用此VBA代码

Selection.SpecialCells(xlCellTypeConstants, 23).Select

答案 1 :(得分:0)

在最后一个"结束时加上#34;。

Columns("O").SpecialCells(xlCellTypeBlanks).ClearFormats