ВБА сортирање - Екцел савети

Преглед садржаја

Екцел ВБА Макро за сортирање података. Не свиђа ми се како макро снимач ствара додатни код за сортирање. Сортирање у програму Екцел ВБА требало би да буде једноставно. Један ред кода, са колоном за сортирање, на који начин (узлазно или силазно) и постоји ли заглавље.

Погледајте видео

  • Екцел макро снимач не обавља добар посао са сортирањем записа.
  • Под условом да се ваши подаци могу одабрати помоћу Цтрл + * (познат као тренутни регион)
  • Под условом да не сортирате по боји или икони или више од три нивоа
  • Користите методу старе школе Ранге (). ЦуррентРегион.Сорт у програму Екцел

Видео транскрипт

Научите Екцел од МрЕкцел Подцаста, Епизода 2093: Сортирање помоћу ВБА

Хеј, добродошао назад на нетцаст, ја сам Билл Јелен. Данашње питање од Јамеса из Хунтсвилле-а. Јамес, користио сам макро снимач за снимање радње сортирања података. Дакле, рецимо да је Џејмсу било потребно да сортира ове податке по секторима и купцима. Дакле, изашли сте овде на картицу Виев, Мацрос, Рецорд Нев Мацро, СортМиРепортс, Схортцут Кеи Цтрл - тамо ћу откуцати Схифт + С и кликнути на ОК. У реду, онда одавде радимо: Дата, Сорт и желимо рећи да желимо сортирати по секторима, а затим додати ниво и сортирати по купцу и кликнути ОК. Доље у доњем левом углу кликнемо Стоп Рецординг. У реду, ето га. Изгледа да је успело, зар не?

Али овде је проблем: сутра ћете имати више података или мање података или, знате, било шта друго. А тај Снимљени макро је просто ужасан. Хајде да погледамо, урадићу Алт + Ф8 и погледаћу СортМиРепорт, то ће уредити. У реду, и ово је све што су снимили тако да СортФиелдс.Цлеар, а затим су поставили нову сорту са СортФиелдс.Адд и они су тешко кодирани, а постоји 568 редова и све остало.

Враћајући се у прошли дан, било ми је јако, јако лако. У реду, а затим су у Екцел 2007 додали Сортирај по икони, Сортирај по боји, Сортирај по боји фонта, могућност сортирања на 15 нивоа и све је постало заиста, стварно лудо. Дакле, више не користим Снимљени макро. Ја само идем у стару школу.

Сада ћу се вратити на Екцел. Ево правила за ово сортирање у старој школи, у реду. Наслов изнад сваке колоне: тај наслов мора бити у једном реду, а не у два реда. Ако тамо горе имате наслове и у реду је имати наслове тамо горе. Потребан вам је потпуно празан ред између наслова и првог наслова. Ако имате белешке на десној страни: ваша супруга зове са списком намирница: „Хеј, душо, стани на путу кући. Узми млеко, јаја и вотку. “ Између ваших података и тога мора постојати потпуно празна колона. А ако се на дну налазе белешке, уверите се да постоји потпуно празан ред између последњег бита података и тих белешки.

Мој цео циљ је да бисмо могли да дођемо до било које ћелије: горњи леви угао ћелије ових података и притисните Цтрл + * и она ће одабрати податке који ће бити сортирани. Сада ћу притиснути Цтрл +. који нас води до овог угла, а затим Цтрл +. одвешће нас у доњи десни угао, Цтрл +. води нас у доњи леви угао. У реду, па ако ће Цтрл + * правилно одабрати ваше податке, онда је све сјајно. Ако своју листу прехрамбених производа ставите у колону Х и видимо да долазимо овде и Цтрл + *, па, сада сортирамо листу намирница као део ствари и ваша листа намирница ће се зезнути. Или ћемо поништити: ако овај ред није овде, сада радимо Цтрл + *, видите да смо- сада ће бити беспредметни јер више немају ниједан наслов, у реду?

Дакле, ако ћете користити мој код, уверите се да су сва ова правила тачна: нема сортирања моје боје, нема сортирања моје иконе, 3 или мање нивоа сортирања. Опозови, у реду. Дакле, ево шта знамо: знамо да ће сваки дан наши подаци почети у А5. Ако не знамо колико редова или колико, па чак и колико колона можемо имати. Не могу да замислим ситуацију да се колоне замењују, али ће се сигурно променити број редова. Дакле, Алт + Ф11, једноставно ћемо кренути од оне горње леве угаоне ћелије. Дакле, опсег, у мом случају је „А5“ .Тренутна регија. Тренутни регион је ово сјајно својство зграде које каже да ћемо притиснути Цтрл + Схифт + * и све што је тамо укључено је оно што ће бити сортирано. И ми то радимо. .Сређено, у реду.

Сад је у томе ствар. Ако желите да сортирање на једном нивоу буде једноставно: Кеи1: =. : = и ми само кажемо да ће бити Ранге - Ох, заборављам шта је. Био је Сектор, где је Сектор? Сектор је у колони Ц. Дакле, Ц5 у мом случају, опсег („Ц5“), а затим, Ордер1: = клАсцендинг. Притиснуо сам тамо тастер стрелице надоле, а затим Таб. У реду, могао бих да наставим да излазим удесно, али то нећу да радим. Идем на нови ред, тако да размак, подвлачење да иде на нови ред, наставља овај ред кода, у реду? А ако имам сортирање другог нивоа: Кеи2: = и у овом случају желим да сортирам по купцу који је у колони Д, дакле Д5. А онда, Ордер2: клАсцендинг. Лепа.

Немам сортирање трећег нивоа, али да јесте, то би био Кеи3, а затим Ордер3. А онда овај следећи, онај који треба да урадите је Хеадер, у реду? Дакле, Хеадер: = клГуесс, ту ћете створити велике проблеме. И тако ћемо тамо рећи кИес, дефинитивно као заглавље. Чак и у стара времена, Мацро Рецордер би користио клГуесс. Мрзим што Екцел погађа.

То је то. Један ред кода, то је све што треба да урадите и радиће са више редова, мање редова. То је лепа, лепа ствар. У реду, па ћемо се вратити овде у Екцел. Цтрл + Схифт + С је и даље оно што се додељује. Сад је - Ако сте се управо пребацили на ВБА и сами то укуцате, можете да одете на Алт + Ф8, пронађете име свог макронаредбе, кликнете Опције и унесете тамо Цтрл + Схифт + С или га чак можемо доделити Тастерска пречица овде на траци са алаткама за брзи приступ. Десни клик, Прилагоди траку са алаткама за брзи приступ тамо где ја бирам између наших макронаредби. Имам макро под називом СортМиРепорт, кликнућу Додај - мрзим мали дијаграм тока тамо. То ћемо модификовати и волео бих да тамо постоји нека врста А до Ж, али наравно да није. Можда она стрелица ко зна, ко зна, само било шта одабере.Магичне 8 куглице, не знам. Овде ћу изабрати овог малог, кликните ОК, кликните ОК. У реду, тако да су сада наши подаци сортирани по датуму, ја бирам - и није важно шта ћу изабрати. Увек ће се вратити и сортирати из А5, кликнем на малог и моји подаци су сада сортирани по секторима, унутар сектора, према купцима. Одлично ради, у реду?

Дакле, ако сте љубитељ Макро снимача, искрено вам желим све најбоље. Али код Мацро Рецордер-а данас за сортирање-сортирање у ВБА-у је много једноставнији; да се само вратите назад, једноставно користите у суштини овај, један ред кода.

Па, ово је обично место где покушавам да те наговорим да купиш ову књигу, али данас мислим да би требало да погледаш ову књигу: Екцел 2016 ВБА и Мацрос од Траци-а и мене. Вау! Види ово. Нисам знао да постоји верзија на другом језику. Довешћемо вас у потпуности према кривуљи учења макронаредби од снимања вашег првог макронаредбе до кода који вам треба.

Па, једноставно сажетак за данас: Екцел Мацро Рецордер не обавља добар посао са снимањем, сортирањем: под условом да се ваши подаци могу одабрати помоћу Цтрл + * који је познат као тренутни регион, под условом да не сортирате као боја или икона или више од три нивоа, само сортирајте методу старе школе Ранге (). ЦуррентРегион.Сорт у ВБА.

Желим да захвалим Јамесу што је послао то питање. Желим да вам захвалим што сте навратили. Видимо се следећи пут за још једно емитовање од.

Скини докуменат

Преузмите датотеку узорка овде: Подцаст2093.клсм

Занимљиви Чланци...