- Sub 比较异同()
- Dim arr, brr, i&, k%, d As Object, re(), cnt%(1 To 3), tmp
- For k = 2 To 12
- arr = Sheets(k - 1 & "月份").Range("A1").CurrentRegion.Value
- brr = Sheets(k & "月份").Range("A1").CurrentRegion.Value
- ReDim re(1 To UBound(arr) + UBound(brr), 1 To 3)
- Set d = CreateObject("scripting.dictionary")
- For i = 2 To UBound(arr)
- d(arr(i, 1)) = arr(i, 2)
- Next
- For i = 2 To UBound(brr)
- If Not d.exists(brr(i, 1)) Then
- cnt(2) = cnt(2) + 1
- re(cnt(2), 2) = brr(i, 1)
- Else
- If d(brr(i, 1)) <> brr(i, 2) Then cnt(3) = cnt(3) + 1: re(cnt(3), 3) = brr(i, 1)
- d.Remove (brr(i, 1))
- End If
- Next
- tmp = d.keys
- For i = 0 To UBound(tmp)
- re(i + 1, 1) = tmp(i)
- Next
- Range("A4").Offset(, (k - 2) * 3).Resize(UBound(re), 3) = re
- Erase cnt
- d.RemoveAll
- Set d = Nothing
- Next
- End Sub
复制代码 |