返回列表 上一主題 發帖

資料比對

回復 1# waterfox
  1. Sub XX()
  2. Set d = CreateObject("scripting.dictionary")
  3. For Each A In Sheet1.Range("A1:A" & [A1].End(xlDown).Row)
  4.   d(A & "," & A.Offset(0, 1)) = A.Offset(0, 2)
  5. Next
  6. For Each A In Sheet2.Range("A1:A" & [A1].End(xlDown).Row)
  7.   If d.Exists(A & "," & A.Offset(0, 1)) Then
  8.      A.Offset(0, 3) = d(A & "," & A.Offset(0, 1))
  9.      d.Remove (A & "," & A.Offset(0, 1))
  10.   End If
  11. Next
  12. Ar = d.keys
  13. For I = 0 To UBound(Ar)
  14.   Sheet2.[A1].End(xlDown).Offset(1, 0).Resize(1, 2) = Split(Ar(I), ",")
  15. Next I
  16. Sheet2.[C1].End(xlDown).Offset(1, 0).Resize(d.Count, 1) = Application.Transpose(d.items)
  17. End Sub
複製代碼

TOP

回復 3# waterfox

但如果有好多行都不在sheet 2內... 你以上的程式是如果Sheet1 有幾行是在sheet 2找不到的, 那只將找不到的第一行加到sheet 2最尾... 如果要將所有在sheet 1都找不到都加在sheet 2, 那如何處理
=>原先的程式就是將sheet 1找不到都加在sheet 2的最尾
   sheet 1有3行在sheet 2是找不到的,就在sheet 2的最尾加上sheet 1的3行
   sheet 1有5行在sheet 2是找不到的,就在sheet 2的最尾加上sheet 1的5行


... 另外如果除了column A, column B 要match 外... 如果要column C and column D都要match 那又如何... 謝謝你呀resigter 313.
=>是不是先上傳你的excel檔案,比較知道的檔案的結構

TOP

        靜思自在 : 一個人不怕錯,就怕不改過,改過並不難。
返回列表 上一主題