- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
回復 7# jessicamsu
Hsieh 前輩的 Idea 非常棒,我將它稍稍修飾了一下,
即先將 A2:C28 的內容複製到 E2:G28 後再處理分析,
以明確看得出來程式是如何執行處理的。
同時補上了 ky 的變數宣告。- Sub ex()
- Dim ky As Variant
-
- Set d = CreateObject("Scripting.Dictionary")
- Application.DisplayAlerts = False
-
- [A2:C28].Copy Destination:=[E2]
-
- For i = 7 To 5 Step -1
- For Each a In Range(Cells(2, i), Cells(Rows.Count, i).End(xlUp))
- mystr = a & a.Offset(, IIf(i = 5, 0, -1))
- If IsEmpty(d(mystr)) Then
- Set d(mystr) = a
- Else
- Set d(mystr) = Union(d(mystr), a)
- End If
- Next
- For Each ky In d.keys
- d(ky).Merge
- Next
- d.RemoveAll
- Next
-
- Application.DisplayAlerts = True
- End Sub
複製代碼
快速合併儲存格.rar (8.14 KB)
|
|