|
一列のデータの場合なので逆ですが
改造すれば出来ると思います。
B列で同じ値が続いたら結合するものです。
結合解除も載せていきます。
'結合
Dim c As Range
Dim r As Range
Dim MyCell As Range
Dim cnt As Long
Application.ScreenUpdating = False
For Each c In Worksheets(1).Range(Worksheets(1).Cells(1, 2), _
Worksheets(1).Cells(65536, 2).End(xlUp))
'1行下のセルと同じ場合
If c.Value = c.Offset(1).Value Then
'カウントを1増やす
cnt = cnt + 1
'重複開始行のセルを取得
If cnt = 1 Then Set MyCell = c
End If
'1行下のセルと違う値の場合
If c.Value <> c.Offset(1).Value Then
'カウントが1以上だったら
If cnt > 0 Then
'重複開始行以外のセルクリア
MyCell.Offset(1).Resize(cnt).ClearContents
'セル結合
MyCell.Resize(cnt + 1).MergeCells = True
'カウントを0に戻す
cnt = 0
End If
End If
Next
Application.ScreenUpdating = True
'分解
Dim c As Range
Application.ScreenUpdating = False
For Each c In Worksheets(1).Range("B2", Range("B65536").End(xlUp))
If c.MergeCells = True Then c.MergeCells = False
If c.Value = "" Then c.Value = c.Offset(-1).Value
Next
Worksheets(1).Range("B2", Range("B65536").End(xlUp)).Borders.Weight = xlThin
Application.ScreenUpdating = True
End Sub
|
|