- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 141
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-6-11
               
|
17#
發表於 2014-1-20 09:57
| 只看該作者
回復 15# li_hsien
是這樣的意思嗎?
若USER有對照到MATCH_A&B則更新MATCH_A&B
若無對照到MATCH_A&B應則新增USER資料列到MATCH_A&B
若MATCH_A&B資料未出現在USER則保留- Sub ex()
- Dim A As Range, Sh As Worksheet
- Set d = CreateObject("Scripting.Dictionary")
- For Each Sh In Sheets(Array("User A", "User B"))
- With Sh
- For Each A In .Range(.[C2], .[C2].End(xlDown))
- Debug.Print A
- d(A & A.Offset(, 1) & A.Offset(, 2)) = Array(A.Value, Sh.Name, A.Offset(, 1).Value, A.Offset(, -1).Value, A.Offset(, 2).Value, A.Offset(, 3).Value, "", A.Offset(, 4).Value)
- Next
- End With
- Next
- With Sheets("Match A & B")
- For Each A In .Range(.[A2], .[A2].End(xlDown))
- mystr = A & A.Offset(, 2) & A.Offset(, 4)
- If d.exists(mystr) Then A.Resize(, 8) = d(mystr): d.Remove mystr
- Next
- For Each ky In d.keys
- .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(, 8) = d(ky)
- Next
- End With
- End Sub
複製代碼 |
|