- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
5#
發表於 2010-6-23 12:16
| 只看該作者
回復 4# sping - Sub 同工作表不同欄位之比對()
- Dim Ar(), Ay()
- Set d = CreateObject("Scripting.Dictionary")
- Set d1 = CreateObject("Scripting.Dictionary")
- Set d2 = CreateObject("Scripting.Dictionary")
- With Sheets("同工作表之比對")
- For Each a In .Range(.[A3], .[A65536].End(xlUp))
- d(a.Text) = a.Text
- d2(a.Text) = a.Text
- Next
- For Each a In .Range(.[B3], .[B65536].End(xlUp))
- d1(a.Text) = a.Text
- d2(a.Text) = a.Text
- Next
- ReDim Preserve Ar(s): Ar(s) = "相同Name": s = s + 1
- ReDim Preserve Ay(k): Ay(k) = "不同Name": k = k + 1
- For Each ky In d2.keys
- If d.exists(ky) = True And d1.exists(ky) = True Then
- ReDim Preserve Ar(s) '相同
- Ar(s) = ky
- s = s + 1
- Else
- ReDim Preserve Ay(k) '不同
- Ay(k) = ky
- k = k + 1
- End If
- Next
- Range("c3:d65536") = ""
- .[c2].Resize(s, 1) = Application.Transpose(Ar)
- .[d2].Resize(k, 1) = Application.Transpose(Ay)
- End With
- End Sub
複製代碼 |
|