У меня есть таблица Excel, в которой я хочу объединить каждую ячейку со значением в ней с каждой пустой ячейкой под ней до следующей ячейки в этом столбце со значением.Excel Visual Basic Macro для объединения ячеек в выделенной области
В настоящее время у меня есть это:
Sub mergemainbody()
lrow = ActiveSheet.UsedRange.Rows.Count - 2
On Error Resume Next
Application.DisplayAlerts = False
For col = 1 To 50
For Each ar In Cells(3, col).Resize(lrow).SpecialCells (xlCellTypeBlanks).Areas
ar.Resize(ar.Rows.Count + 1).Offset(-1).Merge
Next
Next
End Sub
Который работает на весь лист, но я хочу макрос применить только к выбранной области. Однако простое изменение For col = 1 to 50
на For Each cell In Selection
делает макрос, казалось бы, ничего не делая.
Пример данных:
Heading | Heading | Heading | Heading |
1456262 | 270520 | 574038 | 583059 |
Words | --------- | --------- | --------- |
586048 | --------- | --------- | --------- |
Words | 694574 | 856738 | 068438 |
Где --- показывает ячейка пуста.
Можете ли вы подробно остановиться на _stop working_, как он перестает работать, ничего не делает, вы получаете код ошибки или что-то еще? – litelite
Вы пробовали сначала установить диапазон, основанный на вашем выборе, а затем прокручивать этот диапазон? – CallumDA
@litelite Извините, он просто ничего не делает, код ошибки! –