Обхват на сортиране по VBA - Как да сортираме диапазон в Excel VBA?

Обхват на сортиране в Excel VBA

Сортирането на диапазон във VBA се извършва по метода range.sort, той е свойство на метода range, с който потребителят може да сортира диапазон по ред, аргументите за тази функция са Key1, Order1, Key2, Type, Order2, Key3 , Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3, всички аргументи за тази функция не са задължителни.

Като част от организирането на данни или тяхното структуриране е важно да сортирате данните и да ги направите организирани. Подобно нещо е налично и с VBA, така че често срещан въпрос за новите обучаеми на VBA е как можем да използваме тази опция за сортиране като част от автоматизацията на VBA и тази статия ви води подробно през обхвата на сортиране на VBA.

С Excel всички сме запознати с опцията за сортиране, която е достъпна в раздела ДАННИ.

Опция за сортиране във VBA

За да използваме опцията за сортиране, първо трябва да решим какъв е нашият диапазон от данни и да споменем същия диапазон от данни, като използваме обекта RANGE във VBA, след което само ние можем да осъществим достъп до опцията „Сортиране“ във VBA. Например, да предположим, че моят диапазон от данни е от A1 до D10, тогава можем да предоставим диапазона от данни, както следва.

Код:

Sub Sort_Range_Example () Диапазон ("A1: D10") Край Sub

Сега поставете точка и изберете метода “SORT”.

Код:

Sub Sort_Range_Example () Обхват ("A1: D10"). Сортиране Край Sub

По-долу е синтаксисът на метода SORT за диапазон. Въпреки че синтаксисът има различни аргументи, ние не се нуждаем от всички тях за нашето VBA кодиране, така че се нуждаем само от няколко елемента.

(Ключ1): В диапазона от данни, който сортираме, трябва да посочим коя колона трябва да сортираме. Например в диапазона от данни на A1: D10, ако искаме да сортираме данните въз основа на колона B, тогава (Key1) ще бъде Range (“B1”) .

(Order1): Споменатата колона в аргумента (Key1) трябва да бъде сортирана в какъв ред. Тук можем да изберем две опции „xlAscending“ или „xlDescending.“

Заглавка: Споменатият диапазон от данни има заглавки или не. Ако отговорът е „да“, можем да предоставим „xlYes“, а може и „xlNo.“

Пример за диапазон на сортиране във VBA

Нека вземем примера на диапазон на сортиране на Excel VBA, за да разберем това по-добре.

Например погледнете структурата на данните по-долу.

Разполагаме с данни от А1 до Е17, така че първо ще сортираме данните въз основа на „По държава“. Следвайте стъпките по-долу, за да напишете кода за сортиране на данните.

Стъпка 1: Стартирайте Excel макро процедурата.

Код:

Sub Sort_Range_Example () Край Sub

Стъпка 2: Първо, споменете диапазона от данни, като използвате обекта RANGE .

Код:

Sub Sort_Range_Example () Обхват ("A1: E17") Край Sub

Стъпка 3: Сега изберете метода “ Сортиране ” на обекта Range.

Код:

Sub Sort_Range_Example () Диапазон ("A1: E17"). Сортиране Край Sub

Стъпка 4: Тъй като сортираме данните въз основа на „По държава“, нашата колона за аргумент Key 1 ще бъде Range („B1“).

Код:

Sub Sort_Range_Example () Диапазон ("A1: E17"). Клавиш за сортиране1: = Обхват ("B1"), Краен Sub

Стъпка 5: След като се спомене необходимата колона, трябва да споменем в какъв ред трябва да сортираме данните и „Order1“ ще бъде „xlAscending“ .

Код:

Sub Sort_Range_Example () Диапазон ("A1: E17"). Клавиш за сортиране1: = Обхват ("B1"), Поръчка1: = xl Възходящ, Краен Sub

Стъпка 6: Нашите данни имат заглавки, така че заглавката ще бъде „xlYes“.

Код:

Sub Sort_Range_Example () Обхват ("A1: E17"). Клавиш за сортиране1: = Обхват ("B1"), Поръчка1: = xl Възходящ, Заглавие: = xl Да Край Под

We have mentioned all the elements which are required to sort the data. Execute the code by pressing the F5 function and key and see the result.

Output:

Data has been sorted based on Country names in the order of A to Z.

Now assume we need to sort the data based on Country-wise also we need to sort the “Gross Sales” from highest to lowest. In such cases, we need to make use of Key2 and Order2 arguments as well.

After mentioning Key1 & Order1, let’s choose Key2.

Code:

Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending,Key2:= End Sub

Since we are sorting the data based on the “Gross Sales” column, our Key2 column name will be Range(“D1”).

Code:

Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending,Key2:=Range("D1"), End Sub

Once the Key2 is specified, we need to decide on the sorting patter of whether it is ascending order or descending order in Order2 argument. Since we are sorting the sales value from largest to smallest, we can choose “xlDescending” order.

Code:

Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending, Key2:=Range("D1"), Order2:=xlDescending, Header:=xlYes End Sub

After that, mention the Header argument as “xlYes.” Now run the code and see what happens.

Output:

Previously it has sorted based only on “Country-wise” but this time it has sorted based on “Country-wise” first and then also on “Gross Sales” from highest to lowest.

По този начин можем да използваме метода „ Сортиране “ във VBA, за да организираме данните.

Неща, които трябва да запомните за диапазона за сортиране на Excel VBA

  • Сортирането е метод, наличен във VBA и за достъп до този метод трябва да посочим какъв диапазон от клетки ще сортираме.
  • Ако диапазонът от данни включва заглавки, тогава трябва да изберем опцията за заглавка като „xlYes“, ако не, можем да изберем „xlNo.“

Интересни статии...