|
- Private Sub Compare()
- Dim aApply, aCheck, aResult()
- Dim DicApply As Object, DicCheck As Object
- Dim sCombine As String
- Dim dKEY
- Dim i&, j&, iCount&
- aApply = Worksheets("申报表").[a1].CurrentRegion.Value
- aCheck = Worksheets("登记表").[a1].CurrentRegion.Value
- Set DicApply = CreateObject("scripting.dictionary")
- Set DicCheck = CreateObject("scripting.dictionary")
- For i = 2 To UBound(aApply)
- sCombine = aApply(i, 1) & "@" & aApply(i, 2) & "@" & aApply(i, 3)
- DicApply(sCombine) = i
- Next
- For i = 2 To UBound(aCheck)
- sCombine = aCheck(i, 1) & "@" & aCheck(i, 2) & "@" & aCheck(i, 3)
- DicCheck(sCombine) = i
- Next
- ReDim aResult(1 To UBound(aApply), 1 To 3)
- For Each dKEY In DicApply
- If Not DicCheck.exists(dKEY) Then
- iCount = iCount + 1
- For j = 1 To 3
- aResult(iCount, j) = aApply(DicApply(dKEY), j)
- Next
- Else
- DicCheck.Remove dKEY
- End If
- Next
- [a4].Resize(iCount, 3) = aResult
- ReDim aResult(1 To UBound(aCheck), 1 To 3)
- iCount = 0
- For Each dKEY In DicCheck
- iCount = iCount + 1
- For j = 1 To 3
- aResult(iCount, j) = aCheck(DicCheck(dKEY), j)
- Next
- Next
- [d4].Resize(iCount, 3) = aResult
- DicApply.RemoveAll: Set DicApply = Nothing
- DicCheck.RemoveAll: Set DicCheck = Nothing
- End Sub
复制代码 |
评分
-
1
查看全部评分
-
|