セルの結合をしていると
並び替えができません。
並び替えをするために
セルの結合を解除すると
左上のセルのみに値が設定され
その他のセルは空白になってしまいます。
セルの内容によって
並び替えをしたい場合は
結合解除で空白になると適切に並び替えができません。
VBAで
結合を解除したときに
結合されていた全セルに結合時の値を設定できるようにします。
次のコードは選択範囲内の結合を解除して
結合していた全セルに同じ値を入力します。
セルの結合を解除して
結合されていた全セルに同じ値を入力するコード:
|
Sub macro20200517a() 'セルの結合を解除したときに 'すべてのセルに同じ値を入れる
Dim Str As String Dim c As Range Dim rng As Range For Each c In Selection If c.MergeCells = True Then Str = c.FormulaR1C1 Set rng = c.MergeArea c.UnMerge rng.Cells = Str End If Next c
End Sub
|
次のコードは
上記のマクロで結合を解除したセルを再結合します。
隣り合う同じ値のセルを結合するコード:
|
Sub macro20200517b() '隣り合う同じ値のセルを結合する
Dim Str As String Dim c As Range Dim rng As Range Dim i As Integer, j As Integer For Each c In Selection i = 0 j = 0 If c <> "" Then Do While c = c.Offset(i + 1, 0) i = i + 1 Loop Do While c = c.Offset(0, j + 1) j = j + 1 Loop Application.DisplayAlerts = False Range(c, c.Offset(i, j)).Merge Application.DisplayAlerts = True End If Next c
End Sub
|
使用Ver:Win10, Excel For Office365
コメント