返回列表 上一主題 發帖

VBA比對求解

本帖最後由 n7822123 於 2019-6-14 01:41 編輯

回復 1# peter631114


如果[B2]=[B6],是不是[K5]=[A2] ,[M5]=[A6]

然後繼續看[B2]是否等於[B7],

等於的話繼續用[B2]比下一個[B8],直到比完都一樣,再換[B3]?

不等於的話,跳到[B3]去跟其他的比

是這個邏輯?
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2019-6-14 02:28 編輯

回復 1# peter631114


希望我的理解沒有錯,請試試看吧!

Sub 比對()
Dim Ri&, Rn&, i&, j&, n&, Arr, Brr
Ri = Cells(Rows.Count, 1).End(3).Row
Arr = [A2].Resize(Ri - 1, 2)
Rn = Ri * (Ri - 1)
If Rn >= Rows.Count Then Rn = Rows.Count - 1
Brr = [K2].Resize(Rn, 3): n = 1
For i = 1 To Ri - 1: For j = 1 To Ri - 1
  If i <> j Then
      If Arr(i, 2) = Arr(j, 2) Then
        Brr(n, 1) = Arr(i, 1)
        Brr(n, 3) = Arr(j, 1)
        n = n + 1
      Else: Exit For: End If
  End If
Next:  Next
[K2].Resize(Rn, 3) = Brr
End Sub
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 4# peter631114


  不太懂你的意思,我程式跑出來的結果,跟你的敘述是一樣的



比對.rar (19.93 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題