- Sub Macro1()
- Dim arr, brr, crr, drr, d, i&, p$, j%, s&, s2&
- Set d = CreateObject("scripting.dictionary")
- arr = Range("a10").CurrentRegion
- brr = Range("h10").CurrentRegion
- ReDim crr(1 To UBound(arr), 1 To UBound(arr, 2)) '交集
- ReDim drr(1 To 60000, 1 To UBound(arr, 2)) '并集
- For i = 2 To UBound(arr)
- p = ""
- For j = 1 To UBound(arr, 2)
- drr(i - 1, j) = arr(i, j)
- p = p & "," & arr(i, j)
- Next
- d(p) = ""
- Next
- s = UBound(arr) - 1
- For i = 2 To UBound(brr)
- p = ""
- For j = 1 To UBound(brr, 2)
- p = p & "," & brr(i, j)
- Next
- If Not d.exists(p) Then
- s = s + 1
- For j = 1 To UBound(brr, 2)
- drr(s, j) = brr(i, j)
- Next
- Else
- s2 = s2 + 1
- For j = 1 To UBound(brr, 2)
- crr(s2, j) = brr(i, j)
- Next
- End If
- d(p) = ""
- Next
- Range("o11").Resize(s2, UBound(crr, 2)) = crr
- Range("v11").Resize(s, UBound(drr, 2)) = drr
- End Sub
复制代码 |