- Sub demo()
- Dim arr, brr(1 To 30000, 1 To 3), dic As Object
- Dim iRow%, i%, j%, k%
- With ThisWorkbook
- Set dic = CreateObject("Scripting.Dictionary")
- arr = .Sheets("原始数据").Range("A1").CurrentRegion
- For i = LBound(arr, 1) To UBound(arr, 1)
- dic(arr(i, 1)) = arr(i, 2)
- Next
- ar = .Sheets("检查项目").Range("A2:C" & .Sheets("检查项目").Cells(Rows.Count, 1).End(xlUp).Row)
- For j = LBound(ar, 1) To UBound(ar, 1)
- If ar(j, 3) <> dic(ar(j, 2)) Then
- k = k + 1
- brr(k, 1) = ar(j, 1)
- brr(k, 2) = ar(j, 2)
- brr(k, 3) = ar(j, 3)
- End If
- Next
- .Sheets("结果").UsedRange.Offset(1, 0).Clear
- .Sheets("结果").Range("A2").Resize(k, 3) = brr
- End With
- End Sub
复制代码 |