- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 117
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-5-15
               
|
10#
發表於 2010-6-12 20:52
| 只看該作者
回復 9# milkpillow
試試看是不是這樣的意思- Sub matchdata()
- Dim Ay()
- Set d = CreateObject("Scripting.Dictionary")
- With Sheet2
- For Each A In .Range(.[A2], .[A65536].End(xlUp))
- If d.exists(A.Value) = False Then
- d(A.Value) = Join(Array(A, A.Offset(, 1), A.Offset(, 2), A.Offset(, 3)), ",")
- Else
- d(A.Value) = d(A.Value) & ";" & Join(Array(A, A.Offset(, 1), A.Offset(, 2), A.Offset(, 3)), ",")
- End If
- Next
- End With
- With Sheet1
- For Each A In .Range(.[C2], .[C65536].End(xlUp))
- If d.exists(A.Value) = True Then
- Ar = Split(d(A.Value), ";")
- For i = 0 To UBound(Ar)
- ReDim Preserve Ay(s)
- Ay(s) = Split(A.Offset(, -2) & "," & A.Offset(, -1) & "," & Ar(i), ",")
- s = s + 1
- Next
- Else
- If mystr = "" Then mystr = A Else mystr = mystr & "," & A
- End If
- Next
- End With
- With Sheet3
- .[A2:F65536] = ""
- .[A2].Resize(s, 6) = Application.Transpose(Application.Transpose(Ay))
- MsgBox mystr & "沒找到"
- End With
- End Sub
複製代碼 |
|