使用ID比较两列

时间:2017-06-14 11:47:26

标签: excel vba excel-vba excel-vba-mac

我正在比较两列A和B. A列和B列包含数据库中的ID。

ID长度为13位,但大多数情况下长度为11位。

  1. 案例1:如果A栏的ID为ABC02369000,B栏的ID为ABC02369000,则结果匹配。
  2. 案例2:如果A栏的ID为ABC14285500,B栏的ID为ABC1428550000,则结果仍然匹配。
  3. 案例3:如果A栏的ID为ABC15184200,B栏的ID为ABC15144200,则结果不匹配。
  4. 我想要一个符合此标准的代码。如果匹配,则突出显示为绿色,否则显示为红色。

    我已经尝试过条件格式化了。我很高兴,如果我能在代码中拥有它。

    Sub RangeTest()
        Dim targetWorksheet As Worksheet
        Dim i As Long
        Dim totalrows As Integer
    
        For i = 2 To 112
            Set targetWorksheet = Worksheets("Preparation sheet")
            With targetWorksheet
                Cells(i, 3) = IIf(Cells(i, 1) = Cells(i, 2), "Yes", "NO")
                Cells(i, 3).Interior.Color = IIf(Cells(i, 3) = "Yes", RGB(0, 255, 0), RGB(255, 0, 0))
            End With
        Next
    End Sub
    

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

Option Explicit

Sub RangeTest()

Dim targetWorksheet As Worksheet
Dim i As Long
Dim totalrows As Integer

For i = 2 To 112
    Set targetWorksheet = Worksheets("Preparation sheet")
    With targetWorksheet
        If Left(.Cells(i, 1), 11) = Left(.Cells(i, 2), 11) Then
            .Cells(i, 3) = "Yes"
            .Cells(i, 3).Interior.Color = RGB(0, 255, 0)
        Else
            .Cells(i, 3) = "NO"
            .Cells(i, 3).Interior.Color = RGB(255, 0, 0)
        End If
    End With
Next i

End Sub