Excel VBA; Как да сортирате таблицата си с VBA; Денис Рейс

сортирате

Тази публикация е част от поредицата VBA Basics.
Често ме питат как да сортирам стойности в таблица с VBA. В този пост ще ви покажа как да го направите, като използвате два примера.

Таблицата на резултатите показва продажбите по град.

град продажби
Берлин 362
Хамбург 832
Мюнхен 290
Кьолн 901
Франкфурт 335
Щутгарт 987
Дюселдорф 257
Дортмунд 470
Яжте 867
Лайпциг 661

Искаме да сортираме таблицата по продажби и по името на града.

рейс

За целта първо създаваме нов макрос.

Първо дефинираме параметрите и определяме коя област трябва да бъде сортирана. Първо искаме да сортираме по продажби в колона Б.

За целта използваме метода Sort, който сортира диапазон от стойности. Този метод има редица параметри, само няколко от които ще използваме. Пълен списък на всички параметри можете да намерите в справочника на Microsoft VBA.

Искаме да сортираме продажбите в колона Б във възходящ ред. За да направите това, трябва да посочим първото поле за сортиране в Key1; това определя стойностите, които трябва да бъдат сортирани. Ако е необходимо, можете също да дефинирате няколко полета за сортиране. Полето за сортиране може да бъде прехвърлено или като име на диапазон, или като обект на диапазон. Ние избираме свойството Range за гъвкавост.

Във втория параметър Order1 определяте реда за сортиране чрез xlAscending (възходящ) или xlDescending (низходящ). Освен това казваме на Excel чрез параметъра Header, че нашата таблица съдържа заглавия. Ако използвате стойността xlGuess тук, Excel се опитва да определи за вас дали таблицата има заглавия или не.

Така че пълният макрос изглежда така:

Как стартирате макроса се сортира по продажби:

град продажби
Дюселдорф 257
Мюнхен 290
Франкфурт 335
Берлин 362
Дортмунд 470
Лайпциг 661
Хамбург 832
Яжте 867
Кьолн 901
Щутгарт 987

рейс

111 VBA макроси, които улесняват живота ви

Искате ли да се отървете от скучните си рутинни задачи? Искате ли да адаптирате Excel към вашите нужди, да автоматизирате изчисленията, да създадете свои собствени диалогови прозорци и много други? Тази книга ви показва как да изпълнявате задачите си бързо и лесно с VBA.

Сега имате градовете, изброени по продажби.

рейс

Сега нека подредим градовете по азбучен ред. Въвеждам нов параметър. С MatchCase можете да определите дали да се вземат предвид големите или малки букви.
За новия макрос ние просто променяме параметъра strColumn и добавяме MatchCase.

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

град продажби
Берлин 362
Дортмунд 470
Дюселдорф 257
Яжте 867
Франкфурт 335
Хамбург 832
Кьолн 901
Лайпциг 661
Мюнхен 290
Щутгарт 987

рейс

Примерен файл на Excel с готовия за използване макрос и 111+ други макроса, които улесняват живота ви, можете да намерите тук.

Впечатлете шефа си с готини трикове на Excel!

  • Не позволявайте на вашите колеги да зависят от вас!
  • Спестете време и го използвайте за по-приятни неща
  • Увеличете производителността и ефективността си
  • Лесно е - в бюлетина си давам стъпка по стъпка инструкции, които всеки може да разбере
  • Когато се регистрирате за моя бюлетин, ще получите книгата „Трикове на Excel, които впечатляват вашия шеф“ като подарък за добре дошли.

денис

Източник на изображението: Pixabay, CC0 Public Domain

Споделяне на запис
Може да се интересувате и от това

таблицата

excel

денис

excel

таблицата

сортирате

благодаря за подробното обяснение. Бих могъл да го използвам супер.
За съжаление имам проблема, че в моята таблица коя колона включва A до N и е сортирана според колона M, колона N не се сортира, а просто остава.

Оттук и въпросът: Какво означава „1“ в този ред на кода:
Key1: = Обхват (strColumn & "1"), Order1: = xlAscending, _

Благодаря и всичко хубаво
Фридерике

Въпросът на Рике е много интересен. Бих искал да знам и това.
Благодаря и поздрави

Това е комбинация от strColumn, което е "A" в примера, и 1 ... така че това води до клетка A1 ... & в диапазона е връзка