VBA StrComp - 将值与异常进行比较

时间:2016-07-15 15:09:39

标签: excel vba

enter image description here我今天在D栏中有数据,我希望与第F栏中的昨天数据进行比较。

以下是我用来比较和突出重复的代码。

A)突出显示我不想要的空白单元格。 B)我想处理一些例外情况,例如我不想突出显示$ 0.00或特定文字“无数据”

Sub CompareAndHighlight()

Dim Myrng1 As Range, Myrng2 As Range, i As Long, j As Long

Application.ScreenUpdating = False

For i = 3 To Sheets("Sheet1").Range("D" & Rows.Count).End(xlUp).Row
        Set Myrng1 = Sheets("Sheet1").Range("D" & i)
    For j = 3 To Sheets("Sheet1").Range("F" & Rows.Count).End(xlUp).Row
        Set Myrng2 = Sheets("Sheet1").Range("F" & j)
        If StrComp(Trim(Myrng1.Text), Trim(Myrng2.Text), vbTextCompare) = 0 Then
        'If Myrng1.Value = Myrng2.Value Then
        Myrng1.Interior.Color = RGB(255, 255, 0)
        End If
        Set Myrng2 = Nothing
    Next j
    Set Myrng1 = Nothing
Next i

Application.ScreenUpdating = True

End Sub

Data giving random errors在清除突出显示的颜色后多次运行宏。

2 个答案:

答案 0 :(得分:0)

使用条件格式化功能。

Columns("A:A").Select
Selection.FormatConditions.AddUniqueValues
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).DupeUnique = xlDuplicate
With Selection.FormatConditions(1).Font
    .Color = -16383844
    .TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13551615
    .TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False

然后在此之后创建一个遍历您的范围的循环并将单元格的颜色转换为满足条件的颜色,或者您可以只过滤数据以排除您的情况,例如“无数据”,以及将结果复制并粘贴到新列中。事实上,你真的不需要vba。

答案 1 :(得分:0)

坚持使用VBA,您可以尝试以下代码:

while