Каждый раз, когда вы пишете повторяющийся код, есть большая вероятность, что вам не хватает возможности реализовать все oop. К счастью, это тот случай, здесь.
L oop через ваши строки (с интервалом 2) и объедините ваши значения для каждого из ваших 3 столбцов в отдельности. Также лучше подождать, чтобы отформатировать ваши ячейки, пока ваш l oop не будет готов. Нет необходимости повторять ту же операцию внутри l oop, , которая может занять много времени , когда вы можете отформатировать весь диапазон сразу, когда вы закончите с l oop.
Sub Shelter_In_Place()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lr As Long
lr = ws.Range("C" & ws.Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
For i = 5 To lr Step 2
ws.Range("C" & i).Resize(2).Merge
ws.Range("D" & i).Resize(2).Merge
ws.Range("E" & i).Resize(2).Merge
Next i
With ws.Range("C5:E" & lr)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Application.ScreenUpdationg = True
End Sub
