|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
Sub 对账()
Set D1 = CreateObject("ScrIptIng.DIctIonary")
Set D2 = CreateObject("ScrIptIng.DIctIonary")
Set D11 = CreateObject("ScrIptIng.DIctIonary")
Set D22 = CreateObject("ScrIptIng.DIctIonary")
ARR1 = Sheet1.UsedRange
A = UBound(ARR1)
If A > 1 Then
For B = 2 To A
NR = ARR1(B, 2) & ARR1(B, 3)
ARR1(B, 1) = ""
If Not D1.Exists(NR) Then
D11(NR) = B
Else
D11(NR) = D11(NR) & "|" & B
End If
D1(NR) = D1(NR) + ARR1(B, 4)
Next B
End If
ARR2 = Sheet2.UsedRange
A = UBound(ARR2)
If A > 1 Then
For B = 2 To A
NR = ARR2(B, 2) & ARR2(B, 3)
ARR2(B, 1) = ""
If Not D2.Exists(NR) Then
D22(NR) = B
Else
D22(NR) = D22(NR) & "|" & B
End If
D2(NR) = D2(NR) + ARR2(B, 4)
Next B
End If
For Each C In D11.Keys
If D1.Exists(C) And D2.Exists(C) Then
If D1(C) = D2(C) Then
S1 = Split(D11(C), "|")
S2 = Split(D22(C), "|")
For Each D In S1
ARR1(D, 1) = "OK"
Next D
For Each D In S2
ARR2(D, 1) = "OK"
Next D
End If
End If
Next C
Sheet1.UsedRange = ARR1
Sheet2.UsedRange = ARR2
End Sub
|
评分
-
1
查看全部评分
-
|