Сортировка строк с использованием объединенных ячеек в VBA - PullRequest
0 голосов
/ 26 апреля 2018

Я работаю с excel-vba, мне нужно отсортировать строки в порядке возрастания с помощью столбца Q со значениями даты.но я обнаружил ошибку:

Для этой операции требуется объединенная ячейка того же размера

А также у меня есть этот код, который является источником ошибки.

Код:

Sheet4.Range("Q5:Q" & lastrow).Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlNo

Ниже приводится главная страница столбца, который я хотел отсортировать

enter image description here

1 Ответ

0 голосов
/ 26 апреля 2018

Excel не может справиться с сортировкой диапазона, в котором есть смесь объединенных и неразделенных ячеек.Вы можете отсортировать столбец Q самостоятельно, но не весь лист в столбце Q.

Вот обходной путь, который вам нужно будет встроить в VBA:

Для каждого столбца с объединеннымячейки: - объединить ячейки - выбрать ячейки - перейти к специальным ... пустым ячейкам (которые выберут Q6, Q8 и т. д. - ввести формулу = A5 во всех ячейках - скопировать все ячейки в столбце и скопировать / вставить значения

После того, как вы сделали это для всех столбцов, вы можете отсортировать

После сортировки вы можете снова объединить ячейки, чтобы вернуться туда, откуда вы начали.

Это менее болезненный кусоккодирования, чем это звучит и будет очень эффективным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...