默認情況下,EXCEL中合併單元格只保留左上角第一個單元格內容,很多時候我們需要保留所有內容,把合併前的每個單元格內容分行顯示在合併後的單元格內,下面是我想到的一個方法,如果大家有更好的方法歡迎分享。
Sub 合併單元格並保留所有單元格內容()
Application.DisplayAlerts = False '自動對彈出的確認框進行確認,不顯示彈出對話框。
Dim X As New Collection '定義一個集合
For Each myObject In Selection '遍歷選定區域單元格
X.Add myObject '把當前遍歷到的單元格內容添加到集合
Next
a = ""
For i = 1 To X.Count
a = a & Chr(10) & X(i) '把集合的內容一個一個串聯起來,中間用軟回車分行
Next
b = Right(a, Len(a) - 1)
Selection.Merge '合併選定的單元格
Selection.Value = b '把合併後的單元格內容設置為合併前單元格內容串聯繫起來的字符串。
Application.DisplayAlerts = True '恢復顯示彈出窗口設置
If Selection.Columns.Count > 1 Then '如果是多列合併,則把合併後的單元格行高設為相應的倍數行高,以顯示所有合併內容,比如把三列合併,則合併後的單元格設置行高為原行高的三倍。Selection.Columns.Count 是統計選區的列數
Selection.EntireRow.RowHeight = Selection.EntireRow.RowHeight * X.Count
End If
End Sub