У меня есть лист с несколькими таблицами на том же листе Sheet1, разделенном пустой строкой.Macro для сортировки данных из нескольких столбцов до следующей пустой строки, затем повторения
Я хочу, чтобы VBA сортировался один за другим.
Соображения
- Каждая таблица имеет различное количество строк
- В будущем количество столбцов будет также изменить
Что всегда будет то же самое:
- Пустая строка между таблицами на столбце B, которая должна быть отправной точкой для превосходства распознавания Это новая таблица.
- Каждая таблица всегда будет отсортирован по колонке C
Чтобы дать вам более полную картину, я смотрю на кросс-данные вкладки потребителей, где:
столбце А Тип вопроса
КОЛОНКА Б ОТВЕТ вЫБОР
КОЛОННА С заголовка является «TOTAL», и он содержит% на выбор ответа
Остальные COLUMS следуют%, как C, но с разными заголовками, такими как «мужчина» «женщина» «пользователь» «не пользователь» «возраст 18-25» «возраст 26-34» .... и т. Д.
Я хочу создать зацикленный макрос, который будет сортировать каждую таблицу (и все столбцы внутри таблицы) по столбцу C в порядке возрастания, определяя, что он должен искать следующее пустое пространство, а таблица будет ниже.
Я пробовал смотреть на Цикл, Сортировка и поиск следующей пустой ячейки. Но по какой-то причине я не могу собрать кусочки.
Любая помощь будет ОТЛИЧНО оценена!
Предыдущий код пробовал:
Dim oneArea as Range
For Each oneArea in Range("C:C").SpecialCells(xlCellTypeConstants).Area
oneArea.EntireRow.Sort key1:=oneArea.Cells(1,1), order1:=xlAscending
Next oneArea
Для исх: Это один ближайший пример и макро я нашел того, что им будет для, но это не относится к моему сценарию/не может заставить его работать:
Macro to sort data until blank row(s), then repeat
Можете ли вы разместить образцы данных? (Скопируйте/вставьте в виде таблицы) или, в худшем случае, снимок экрана и ожидаемый результат? Кроме того, что вы пробовали до сих пор? Пожалуйста, напишите любой код, который у вас есть. – BruceWayne
Несомненно, я не смог прикрепить excel, добавил несколько скриншотов и кодов. – Tamichan
Для поиска следующей таблицы вы можете использовать 'Selection.End (xlDown). Выберите, и когда вы найдете первую ячейку новой таблицы и выберите ее, вы можете использовать ее для выбора области, которую вы хотите отсортировать:' Selection.resize (Selection. Rows.Count, Selection.Columns.Count - 1) .Offset (0,1) .Выбрать' –