Как отсортировать диапазон в vba?

Чтобы отсортировать диапазон ячеек с помощью VBA, вам необходимо использовать метод «СОРТИРОВКА», который позволяет вам установить для сортировки один ключ (столбец) или несколько ключей (для нескольких столбцов). Вы также можете установить порядок (по возрастанию или убыванию) сортировки, а также указать, есть ли у вас заголовок или нет.

Сортировка диапазона с помощью VBA

  1. Используйте объект диапазона, чтобы указать диапазон, который вы хотите отсортировать.
  2. Введите точку и укажите метод сортировки.
  3. Укажите ключ, который вы хотите использовать для сортировки.
  4. Установите порядок сортировки.
  5. Укажите, есть ли у вас заголовок или нет.
отсортировать диапазон по vba
 Range("A1:A11").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Header:=xlYes

В приведенном выше коде вы использовали диапазон A1:A11, а в методе сортировки, который вы использовали в порядке возрастания, упомянули, что у вас есть заголовок в диапазоне.

Понимание метода сортировки VBA

Прежде чем писать макрос для сортировки диапазона, лучше углубиться в метод сортировки и понять его аргументы.

 Sort (Key1, Order1, Key2, Type, Order2, Key3, Order3, _ Header, OrderCustom, MatchCase, Orientation, SortMethod, _ DataOption1, DataOption2, DataOption3)

Вот самые важные аргументы, которые вы будете использовать в реальной жизни.

  • Ключ : здесь вам нужно определить ячейку, столбец которой вы хотите использовать в качестве основы сортировки.
  • Порядок : порядок сортировки столбца (по возрастанию/убыванию).
  • Заголовок : константа, указывающая, есть ли у вас заголовок или хотите, чтобы VBA угадал.

Сортировать по убыванию

В следующем коде я использовал xlDescending для сортировки столбца суммы в порядке убывания.

Сортировать по убыванию
 Range("A1:A13").Sort Key1:=Range("A1"), _ Order1:=xlDescending, _ Orientation:=xlSortColumns

Использование нескольких столбцов (ключей) для сортировки

Вы также можете использовать несколько столбцов для сортировки диапазона. Давайте возьмем пример из таблицы ниже, где у вас есть несколько записей с именами сотрудников и городами, и вам нужно отсортировать их по имени и городу.

Используйте несколько столбцов для сортировки

Вот код, который вам нужно использовать:

коды для нескольких столбцов
 Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Key2:=Range("B1"), _ Order1:=xlAscending, _ Header:=xlYes

Как вы можете видеть в коде, у вас есть ключ1 и ключ2. В ключе 1 у вас есть столбец с именем сотрудника, а в ключе 2 — столбец города. Для обоих столбцов порядок сортировки — по возрастанию, и заголовки присутствуют.

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

Изменение ориентации судьбы

Когда вы обычно сортируете данные в Excel, по умолчанию вы можете сортировать их по столбцам. Но в параметрах сортировки вы можете изменить ориентацию сортировки слева направо, а не сверху вниз.

ориентация на судьбу

Аналогично, у вас есть аргумент в методе сортировки для изменения ориентации ( ссылка ).

метод сортировки ориентации
 Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Orientation:=xlSortRows