返回列表 上一主題 發帖

請問:excel快速合併儲存格

回復 7# jessicamsu
Hsieh 前輩的 Idea 非常棒,我將它稍稍修飾了一下,
即先將 A2:C28 的內容複製到 E2:G28 後再處理分析,
以明確看得出來程式是如何執行處理的。
同時補上了 ky 的變數宣告。
  1. Sub ex()
  2.     Dim ky As Variant
  3.    
  4.     Set d = CreateObject("Scripting.Dictionary")
  5.     Application.DisplayAlerts = False
  6.    
  7.     [A2:C28].Copy Destination:=[E2]
  8.    
  9.     For i = 7 To 5 Step -1
  10.         For Each a In Range(Cells(2, i), Cells(Rows.Count, i).End(xlUp))
  11.             mystr = a & a.Offset(, IIf(i = 5, 0, -1))
  12.             If IsEmpty(d(mystr)) Then
  13.                 Set d(mystr) = a
  14.             Else
  15.                 Set d(mystr) = Union(d(mystr), a)
  16.             End If
  17.         Next
  18.         For Each ky In d.keys
  19.             d(ky).Merge
  20.         Next
  21.         d.RemoveAll
  22.     Next
  23.    
  24.     Application.DisplayAlerts = True
  25. End Sub
複製代碼
快速合併儲存格.rar (8.14 KB)

TOP

        靜思自在 : 唯其尊重自己的人,才更勇於縮小自己。
返回列表 上一主題