|
Pちゃん さん、こんばんわ。
>ただ新宿-新宿-新宿-新宿-世田谷区というパターンもあります。
>区に対するデータの行はそのままで同じ区の行のみ結合したいのですが
>3行ごとに比較して結合する方法がわかりません。
3行ずつとばして比較して、ベタにくっつけていきます。
Sub test2()
Dim r1 As Long, r2 As Long, r3 As Long
'一番下の区の入ったセルを判定
Rmax = Range("A65536").End(xlUp).Row
r1 = Rmax '開始データ(区の入っている一番下の行)
r2 = r1 - 3 '比較対象データ
r3 = r1 + 2 '結合する最下行
'警告無視
Application.DisplayAlerts = False
'作業中のシートが対象
With Application.ActiveSheet
Do
If r1 < 3 Then
.Range(.Cells(r1, 1), .Cells(r3, 1)).Merge
Exit Do '結合して終了(今回のサンプル例のように2行目が1レコードめの場合)
ElseIf .Cells(r1, 1).Value <> .Cells(r2, 1).Value Then
.Range(.Cells(r1, 1), .Cells(r3, 1)).Merge
r3 = r1 - 1 '結合する下行番号を入替
End If
r1 = r1 - 3: r2 = r1 - 3
Loop
End With
'警告再開
Application.DisplayAlerts = True
End Sub
こんな感じです。
|
|