|
- Sub 字典法()
-
- Dim arr1, arr2
- arr1 = Range("A1:G15")
- arr2 = Range("a17:g31")
- Dim result()
- ReDim result(1 To UBound(arr1), 1 To UBound(arr1, 2))
-
- Dim key1 As String, key2 As String
-
- Dim dic1 As Object, dic2 As Object
- Set dic1 = CreateObject("scripting.dictionary")
- Set dic2 = CreateObject("scripting.dictionary")
-
- Dim i As Byte, j As Byte
- For i = LBound(arr1) To UBound(arr1)
- For j = LBound(arr1, 2) To UBound(arr1, 2)
- key1 = key1 & arr1(i, j) & ","
- key2 = key2 & arr2(i, j) & ","
- Next
- dic1(Left(key1, Len(key1) - 1)) = ""
- dic2(Left(key2, Len(key2) - 1)) = ""
- key1 = ""
- key2 = ""
- Next
- Dim a, l As Byte
- Dim arrTemp
- For Each a In dic1.keys
- If dic2.exists(a) Then
- arrTemp = Split(a, ",")
- l = l + 1
- For i = LBound(arrTemp) To UBound(arrTemp)
- result(l, i + 1) = arrTemp(i)
- Next
- End If
- Next
- If l > 0 Then
- Range("u2").Resize(l, UBound(arr1, 2)) = result
- Else
- MsgBox "无相同的数据行"
- End If
- End Sub
复制代码 冒似上面的循环代码结果不对了。 |
|