返回列表 上一主題 發帖

如何讓相同內容的表格合併

如何讓相同內容的表格合併

請問按欄位排序後有相同內容的儲存格要合併成1個,
手動的做法是將重複的刪除再選取合併,用程式該怎麼做呢?
deyan

挺容易理解的代碼
學習了
字典兩各字 還真難理解

TOP

謝謝!方法跟我想的很像,只是我寫不出來

請問 MYROW = Cells([B:B].Find("*", , , , , 2).Row, 1).Row

這行中.Find("*", , , , , 2) 代表什麼意思?
deyan

TOP

回復 9# deyan
這是317的程式碼我代貼上,寫的很好.
  1. Sub nn()
  2. Dim A As Range, r&
  3. Application.DisplayAlerts = False
  4. r = 3
  5. Do While Cells(r, 2) <> ""
  6.    Set A = Cells(r, 2)
  7.    Do Until Cells(r, 2) <> A
  8.    r = r + 1
  9.    Loop
  10.    Range(A, Cells(r - 1, 2)).Merge
  11. Loop
  12. Application.DisplayAlerts = True
  13. End Sub
複製代碼

TOP

本帖最後由 basarasy 於 2011-1-3 11:20 編輯

回復 9# deyan

試試這個.
  1. Sub Macro1()

  2.   Dim MYT1, MYT2, MYT3, MYROW As Integer
  3.   
  4.    Application.DisplayAlerts = False
  5.    
  6.    MYROW = Cells([B:B].Find("*", , , , , 2).Row, 1).Row

  7.    If MYROW <= 3 Then End
  8.    
  9.    MYT1 = 3 'B3開始
  10.    
  11.     Do
  12.         
  13.     MYT2 = Range("B" & MYT1)
  14.    
  15.     MYT3 = MYT1 + 1
  16.    
  17.          Do
  18.         
  19.               If MYT2 = Range("B" & MYT3) Then
  20.    
  21.                  MYT3 = MYT3 + 1
  22.    
  23.               Else
  24.    
  25.                  Range(Cells(MYT1, 2), Cells(MYT3 - 1, 2)).Merge
  26.                   MYT2 = 0
  27.    
  28.               End If
  29.                      
  30.           Loop Until MYT2 = 0
  31.      
  32.       MYT1 = MYT3
  33.       
  34.    Loop Until MYT1 > MYROW
  35.      
  36.     Columns("B:B").HorizontalAlignment = xlCenter
  37.     Application.DisplayAlerts = True
  38. End Sub
複製代碼
50 字節以內
不支持自定義 Discuz! 代碼

TOP

謝謝317,但是還不能下載,可以貼代碼或寄給我嗎?
deyan

TOP

回復 6# deyan

試試

ex2003.rar (9.45 KB)

TOP

已經試過了,

但是我要的結果不是這樣,

要直的、不一定只是2格合併

我再試試看能否修改成自己 ...
deyan 發表於 2011-1-2 02:34


或者上傳檔案來,讓大家參考參考
80 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 deyan 於 2011-1-2 02:38 編輯
大概是這樣,a和b有數字,檢查後merge,試試
FAlonso 發表於 2011-1-1 22:33


已經試過了,

但是我要的結果不是這樣,

要直的、不一定只是2格合併

我再試試看能否修改成自己要的結果,感謝!
deyan

TOP

本帖最後由 FAlonso 於 2011-1-1 22:38 編輯
  1. Sub abc()
  2. Dim myrange As Range, mycell As Range, mytarget As Range
  3. Application.DisplayAlerts = False
  4. Set myrange = Range("A1:A" & Range("A1").End(xlDown).Row)
  5. For Each mycell In myrange
  6. If mycell = mycell.Offset(, 1) Then
  7. Set mytarget = Union(mycell, mycell.Offset(, 1))
  8. With mytarget
  9. .Merge
  10. .HorizontalAlignment = xlCenter
  11. End With
  12. End If
  13. Next
  14. Application.DisplayAlerts = True
  15. End Sub
複製代碼
大概是這樣,a和b有數字,檢查後merge,試試
80 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 自己害自己,莫過於亂發脾氣。
返回列表 上一主題