У меня 350 столбцов. Ниже представлено подмножество всех данных.
Я использовал инструмент "Сортировать от наименьшего к наибольшему". Он выдает результаты только для одного столбца. Если нет, он может отсортировать первый столбец, а другие столбцы изменятся в соответствии с первым. Но я хочу отсортировать все столбцы AZ по отдельности.
Я хочу отсортировать данные по округам.
решение1
1.Выберите столбец, который вы хотите отсортировать. Затем нажмите «Сортировать от наименьшего к наибольшему».
2.Выберите «Продолжить с текущим выбором».
Как видите, отсортирован был только один столбец.
Повторите это для остальных 349 столбцов :)
Чтобы сделать все это за один раз:
Откройте лист, который вы хотите отсортировать.
Откройте редактор VBA с помощью Alt+F11
Вставить > Модуль
Вставьте этот код:
Подсортировать_столбцы_отдельно_AZ() Dim rngStart как диапазон Dim rngHeaders как диапазон Dim c как диапазон Установить rngStart = ActiveSheet.Range("A2") Установить rngHeaders = ActiveSheet.Range(rngStart, rngStart.End(xlToRight)) Для каждого c в rngHeaders ActiveSheet.Сортировка.ПоляСортировки.Очистить ActiveSheet.Сортировка.ПоляСортировки.Добавить ключ:=c, _ Сортировка:=xlСортировкаПоЗначениям, Порядок:=xlПоВосхождению, ПараметрДанные:=xlСортировкаОбычная С ActiveSheet.Сортировка .SetRange ActiveSheet.Range(c, c.End(xlDown)) .Заголовок = xlДа .MatchCase = Ложь .Ориентация = xlСверхуВниз .МетодСортировки = xlPinYin .Применять Конец с Следующий Конец субтитра
- В коде замените
ActiveSheet.Range("A2")
адрес ячейки, с которой начинается ваша таблица данных, напримерActiveSheet.Range("B5")
. - УдарятьF5
Примечание: если в ваших данных есть пустые ячейки, этот код необходимо будет скорректировать для корректной работы в тех столбцах, которые содержат пустые ячейки.