匹配两张纸以找出差异

时间:2015-12-12 23:04:20

标签: sql excel excel-vba excel-formula vba

我有一个文件(两张),我想在之间进行比较。我已经清理了列,因此两个列都有我们在A列中的唯一引用号,B列中的供应商费用和C列中的收入。我正在尝试对各种类型的内部审计进行内部审计。

一张包含两年的数据,而另一张包含一年的数据。这不是一个确定的日期,所以我不想删除任何日期。

Accountants Export Accountants Export
My Data My Data

如何匹配A列中的唯一标识符并突出显示B列或C列中的信息是否有差异?

1 个答案:

答案 0 :(得分:0)

这是在VBA中执行此操作的代码

我认为Sheet1Sheet2都是:

ColumnA是“专业”,ColumnB总费率和ColumnC“运营商Exp” 所有标头都在Row1,数据从row2

开始

以下是代码:

Sub test()

Dim wb As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim Lastrow As Long, Lastrow2 As Long
Dim i As Integer, j As Integer

Set wb = ThisWorkbook
Set ws1 = wb.Sheets("Sheet1")
Set ws2 = wb.Sheets("Sheet2")

Lastrow = ws1.Range("A" & Rows.Count).End(xlUp).Row
Lastrow2 = ws2.Range("A" & Rows.Count).End(xlUp).Row


For i = 2 To Lastrow


    For j = 2 To Lastrow2


        If ws1.Range("A" & i).Value = ws2.Range("A" & j).Value Then


            If Not ws1.Range("B" & i).Value = ws2.Range("B" & j).Value Then

               ws1.Range("B" & i).Interior.Color = vbYellow
               ws2.Range("B" & j).Interior.Color = vbYellow

            End If

            If Not ws1.Range("C" & i).Value = ws2.Range("C" & j).Value Then

             ws1.Range("C" & i).Interior.Color = vbYellow
             ws2.Range("C" & j).Interior.Color = vbYellow

            End If

        End If

    Next j

Next i

End Sub