С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/76: Рейтинг темы: голосов - 76, средняя оценка - 4.72
168 / 6 / 3
Регистрация: 05.07.2013
Сообщений: 62

Сортировка по нескольким столбцам

22.05.2014, 15:24. Показов 16593. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть хорошая функция для сортировки по нескольким столбцам:
Visual Basic
1
2
3
4
5
Sub ColorSort()
 Columns("A:D").sort key1:=Range("A2"), order1:=xlAscending, Header:=xlYes, _
 key2:=Range("B2"), order1:=xlAscending, Header:=xlYes _
 , key3:=Range("C2"), order1:=xlAscending, Header:=xlYes
End Sub
Но в ней есть минус, максимум 3 уровня сортировки, как сделать больше не изобретая велосипед?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2014, 15:24
Ответы с готовыми решениями:

Сортировка таблицы по нескольким столбцам
Добрый день! Появилась необходимость рассортировать рабочую таблицу: поскольку объем данных большой, и со временем будет только расти,...

Сортировка строк таблицы по нескольким столбцам
Доброго времени суток. Имеется код сортировки по одному столбцу. Sheets("Общие списки").Copy After:=Sheets("Общие...

Упорядочивание по нескольким столбцам не срабатывает
Коллеги, доброго времени суток. С помощью записи макросов создал макрос, который в первую очередь должен выполнять сортировку по...

3
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
23.05.2014, 07:42
Лучший ответ Сообщение было отмечено voidex как решение

Решение

voidex, начиная с 2007 офиса (кажется?) в Excel есть более универсальный метод сортировки по более чем трем столбцам.
В более ранних версиях это можно сделать в несколько этапов, начиная сортировку с конца по весу значений столбцов.
Т.е. как-то так -
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub ColorSort()
 
 Columns("A:F").sort key1:=Range("D2"), order1:=xlAscending, Header:=xlYes, _
 key2:=Range("E2"), order1:=xlAscending, Header:=xlYes
 
 Columns("A:F").sort key1:=Range("A2"), order1:=xlAscending, Header:=xlYes, _
 key2:=Range("B2"), order1:=xlAscending, Header:=xlYes _
 , key3:=Range("C2"), order1:=xlAscending, Header:=xlYes
 
End Sub

Не по теме:

Раздел для тем выбирайте внимательнее.

2
168 / 6 / 3
Регистрация: 05.07.2013
Сообщений: 62
23.05.2014, 08:20  [ТС]
Спасибо, как я сам не подумал об этом
И тему да, совсем не там создал, заработался вчера
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
23.05.2014, 09:01
Кстати,
Цитата Сообщение от voidex Посмотреть сообщение
Header:=xlYes
достаточно указать один раз, кажется?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.05.2014, 09:01
Помогаю со студенческими работами здесь

Как сравнить 2 таблицы по нескольким столбцам
Доброго времени суток. Есть 2 на листах "In_data" и "One_price" нужно : 1. сравнить их сначала по столбцу "А" обе таблицы, ...

Сравнить данные по нескольким столбцам одновременно
Всем привет, помогите подогнать на сравнение не только по столбцу "А", а по "A:B" следующий пример Sub Main() Dim i As...

Поиск дубликатов строк по нескольким столбцам
Добрый день уважаемые форумчане! Имеется excel файл с двумя листами X и Y. Лист Y содержит 13 столбов (в скором времени их станет...

Сортировка по двум столбцам
Всем привет. Я в VBA новичок, есть одно задание: Есть таблица рейсов аэропорта. Нужно сортировать таблицу по столбцу B(откуда) и...

Сортировка по нескольким колонкам листа Excel
Задача отсортировать при помощи VBScript по двум колонкам лист Excel, поиск ничего не дал :( Если убрать второе условие, все ОК, если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru