я следующее:
Я ожидаю следующее:
Объединение ячеек в различных диапазонах
Я использую этот код:
Sub merge_cells()
Application.DisplayAlerts = False
Dim r As Integer
Dim mRng As Range
Dim rngArray(1 To 4) As Range
r = Range("A65536").End(xlUp).Row
For myRow = r To 2 Step -1
If Range("A" & myRow).Value = Range("A" & (myRow - 1)).Value Then
For cRow = (myRow - 1) To 1 Step -1
If Range("A" & myRow).Value <> Range("A" & cRow).Value Then
Set rngArray(1) = Range("A" & myRow & ":A" & (cRow + 0))
Set rngArray(2) = Range("B" & myRow & ":B" & (cRow + 0))
Set rngArray(3) = Range("C" & myRow & ":C" & (cRow + 0))
Set rngArray(4) = Range("D" & myRow & ":D" & (cRow + 0))
For i = 1 To 4
Set mRng = rngArray(i)
mRng.Merge
With mRng
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Next i
myRow = cRow + 2
Exit For
End If
Next cRow
End If
Next myRow
Application.DisplayAlerts = True
End Sub
, что я получаю:
Вопрос:, как добиться этого?
Фактически в моих первоначальных данных первые три столбца имеют данные каждые 88 строк, начиная с строки 3, а столбец D должен объединяться каждые четыре строки.
как разъединить эти столбцы ** ПЕРВОЕ **, а затем запустить этот код? можете ли вы добавить строку к этому коду, чтобы разгрузить все объединенные ячейки в этих столбцах, а затем перейти к слиянию? – cplus
'Cells.UnMerge' будет делать unmerge для ActiveSheet. –
не могли бы вы обновить ответ? Я не знаю, где поставить этот код в исходный код. – cplus