Посмотрите, поможет ли это, более подробно в комментариях к коду:
Sub mergeThis()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("SheetName") 'declare and set the worksheet, set your sheet name.
Dim X As Long, howManyTimes As Long 'declare variables to use
howManyTimes = 100 'set how many times here. See additional code for how to get this to last row instead
For X = 0 To howManyTimes 'loop from 0 to so many times
With ws.Range("D69:I69").Offset(X) 'use offset from range to get the new range to deal with
.MergeCells = True
.HorizontalAlignment = xlLeft
End With
Next X
End Sub
Я удалил все значения по умолчанию из слияния / формата, не имеет значения, если они не установлены на другое значение.
Теперь есть способы получить последний ряд, если это то, что вам нужно.Просто добавьте:
Dim lRow As Long: lRow = ws.Cells(Rows.Count, 4).End(xlUp).Row
howManyTimes = lRow