VBA Sort - Excel tippek

Tartalomjegyzék

Excel VBA makró az adatok rendezéséhez. Nem tetszik, hogy a makró felvevő hogyan hoz létre extra kódot a rendezéshez. Az Excel VBA rendezésének egyszerűnek kell lennie. Egy kódsor, az oszlop rendezéséhez, melyik irányba (növekvő vagy csökkenő), és van-e fejléc.

Videót nézni

  • Az Excel makrórögzítő nem végez jó munkát a rendezés felvételével.
  • Feltéve, hogy az adatait a Ctrl + * (aktuális régió néven) segítségével választhatja ki
  • Feltéve, hogy nem szín vagy ikon vagy háromnál több szint szerint rendezi
  • Használja a régi iskolai tartományt (). CurrentRegion.Sort módszer az Excelben

Videó átirat

Tanulja meg az Excel-t a MrExcel Podcast 2093-as epizódjából: Rendezés a VBA segítségével

Hé, üdvözlöm újra a netcasten, Bill Jelen vagyok. Mai kérdés Jamestől Huntsville-ben. James, a makrórögzítő segítségével rögzítettem az adatok rendezését. Tehát tegyük fel, hogy Jamesnek ezeket az adatokat szektor és ügyfelek szerint kellett rendezni. Tehát kijön a Nézet fülre, a Makrók, Új makró rögzítése, SortMyReports, Parancsikon Ctrl - oda beírom a Shift + S billentyűt, és kattintson az OK gombra. Rendben, tehát innen tesszük: Adatok, Rendezés, és azt akarjuk mondani, hogy szektor szerint szeretnénk rendezni, majd hozzáadunk egy szintet és rendezni az ügyfél szerint, majd kattintsunk az OK gombra. Lent a bal alsó sarokban kattintson a Felvétel leállítása gombra. Rendben, szóval ott van. Úgy tűnik, hogy működött, igaz?

De itt van a probléma: holnap több vagy kevesebb adatod lesz, vagy tudod, bármi. És ez a felvett makró egyszerűen szörnyű. Vessünk egy pillantást, megcsinálom az Alt + F8 billentyűkombinációt, és megnézem a SortMyReport programot, ezt szerkeszti. Rendben, és ez minden, amit felvettek, így a SortFields.Clear, majd létrehoztak egy új fajtát a SortFields segítségével. Add hozzá, és kemény kódolásúak, és 568 sor van, és minden dolog.

Most a nap folyamán válogattam, nagyon-nagyon könnyű voltam. Rendben, majd az Excel 2007-ben hozzáadták a Rendezés ikon szerint, Rendezés szín szerint, Rendezés betűszín szerint, a 15 szintű rendezés lehetőségét, és minden nagyon-nagyon őrült lett. Tehát már nem használom a Felvett makrót. Csak a régi iskolába járok.

Most visszatérek az Excel-re. Íme a régi iskolai válogatás szabályai, rendben. Fejléc minden oszlop fölött: ennek a címsornak egy sorban kell lennie, nem pedig két sorban. Ha vannak címek fent, és rendben van, ha címek vannak fent. Teljesen üres sorra van szükség a címek és az első címsor között. Ha a jobb oldalon feljegyzések vannak: a feleséged élelmiszerboltlistával hív: „Hé, édesem, állj meg hazafelé menet. Szerezz tejet, tojást és vodkát. Teljesen üres oszlopnak kell lennie az adatai és az között. Ha pedig alul vannak kazánlemez-jegyzetek, győződjön meg arról, hogy az utolsó adatadatok és a megjegyzések között teljesen üres sor található.

Az egész célom az, hogy képesek legyünk bármelyik cellába eljutni: a bal felső sarokban lévő cellába ezeket az adatokat, majd a Ctrl + * megnyomásával kiválaszthatja a rendezni kívánt adatokat. Most megnyomom a Ctrl + billentyűt. ami erre a sarokra vezet, majd a Ctrl +. a jobb alsó sarokba vezet, a Ctrl +. a bal alsó sarokba visz minket. Rendben, tehát ha a Ctrl + * helyesen választja ki adatait, akkor minden nagyszerű. Ha beteszi az élelmiszerbolt listát a H oszlopba, és látjuk, hogy feljöttünk ide, és a Ctrl + *, akkor most, a dolog részeként válogatjuk az élelmiszerbolt-listát, és az Ön élelmiszerbolt-listája össze lesz csavarva. Vagy visszavonjuk: ha ez a sor nincs itt, akkor most a Ctrl + * billentyűt tesszük, látjuk, hogy… most már tanácstalanok leszünk, mert már nincsenek címsoraik, rendben?

Tehát, ha a kódomat fogja használni, győződjön meg arról, hogy mindezek a szabályok igazak: nincs rendezve a színem, nincs rendezve az ikonom, 3 vagy kevesebb rendezési szint. Visszavonás, rendben. Tehát itt van, amit tudunk: tudjuk, hogy az adataink minden nap az A5-ben kezdődnek. Ha nem tudjuk, hány sor vagy hány - akkor még hány oszlopunk is lehet. Nem tudok elképzelni olyan helyzetet, amikor az oszlopok fel vannak cserélve, de a sorok száma biztosan változni fog. Tehát Alt + F11, egyszerűen abból a bal felső sarok cellából indulunk. Tehát a tartomány, az én esetemben az „A5” .CurrentRegion. A jelenlegi régió ez a fantasztikus épület, amely azt mondja, hogy megnyomjuk a Ctrl + Shift + * billentyűkombinációt, és minden, ami benne van, rendezni fog. És megtesszük .Sort. .Sort, rendben.

Most itt van a dolog. Ha egyszintű rendezést szeretne végrehajtani, akkor könnyű: Key1: =. : = és csak azt mondjuk, hogy Range lesz - Ó, elfelejtem, mi az. Sector volt, hol van Sector? A szektor a C. oszlopban található. Tehát az én esetemben a C5, a Range („C5”), majd a Order1: = xlAscending. Ott megnyomtam a lefelé mutató nyíl gombot, majd a Tab billentyűt. Rendben, tovább tudnék menni jobbra, de nem fogom megtenni. Új sorra megyek, így szóköz, aláhúzás, hogy új sorra menjek, folytatja ezt a kódsort, rendben? És ha van egy második szintű rendezésem: Key2: = és ebben az esetben vevő szerint szeretnék rendezni, amely a D oszlopban van, tehát D5. Ezután a Order2: xlAscending parancsot. Gyönyörű.

Nincs harmadik szintű rendezésem, de ha mégis, akkor Key3, majd Order3 lenne. És akkor ez a következő, amit meg kell tennie, a Fejléc, rendben? Tehát, Fejléc: = xlGondolom, ott kapsz egy csomó bajt. Tehát ott xlIgen fogjuk mondani, feltétlenül Fejlécként. A régi időkben is a Macro Recorder használta az xlGuess alkalmazást. Utálom, hogy az Excel kitalálja.

Ez az. Egy kódsor, ennyit kell tennie, és több sorral, kevesebb sorral fog működni. Ez egy szép, szép dolog. Rendben, szóval visszatérünk ide az Excelbe. A Ctrl + Shift + S továbbra is a hozzárendelt dolog. Most - Ha most váltott át a VBA-ra, és maga írja be, akkor lépjen az Alt + F8 billentyűkhöz, keresse meg a makró nevét, kattintson az Opciók gombra, és írja be a Ctrl + Shift + S parancsot oda, vagy akár hozzárendelhetünk egy Parancsikon itt fent a Gyorselérés eszköztáron. Kattintson a jobb gombbal, a Gyorselérési eszköztár testreszabása elemre, ahol a makrók közül választok. Van egy SortMyReport nevű makróm, majd az Add gombra kattintok - utálom az ottani kis folyamatábra. Ezt módosítjuk, és nagyon szeretném, ha lenne valamilyen A-tól Z-ig helyzet, de természetesen nincs. Talán az a nyíl, aki tudja, ki tudja, csak bármit választhat.A varázslatos 8 golyós, nem tudom. Ezt a kis srácot fogom itt választani, kattintson az OK gombra, majd az OK gombra. Rendben, így most az adataimat Dátum szerint rendezik, én választom - és nem mindegy, hogy mit választok. Mindig vissza fog térni és rendezni az A5-ből, rákattintok a kis srácra, és az adataimat most szektor, szektoron belül, ügyfél szerint rendezik. Remekül működik, rendben?

Tehát, ha rajongsz a Macro Recorderért, akkor szívből jövő jókívánságaimat kívánom neked. De a Macro Recorder kódja manapság a VBA-ban történő válogatáshoz-válogatáshoz sokkal egyszerűbb; csak vissza, egyszerűen használja lényegében ezt az egy, egy sor kódot.

Nos, általában itt próbálom elérni, hogy megvásárolja ezt a könyvet, de ma úgy gondolom, hogy meg kellene néznie ezt a könyvet: Tracy és jómagam Excel 2016 VBA és makrói. Azta! Ezt nézd meg. Nem vettem észre, hogy létezik más nyelvű változat. Teljesen feljutunk a Macro Learning Curve-re az első makró felvételétől a szükséges kódig.

Nos, egyszerű összecsomagolás a mai napra: Az Excel makrórögzítő nem végez jó munkát a rögzítéssel, a válogatással: feltéve, hogy az adatait ki lehet választani a Ctrl + * segítségével, amelyet az aktuális régiónak neveznek, feltéve, hogy nem rendezi, mint a szín vagy az ikon vagy háromnál több szinten használja a régi iskolai tartományt (). CurrentRegion.Sort módszer a VBA-ban a rendezéshez.

Szeretném megköszönni Jamesnek, hogy beküldte ezt a kérdést. Szeretném megköszönni, hogy betértél. Legközelebb találkozunk egy újabb netcast-lal.

Fájl letöltése

Töltse le a minta fájlt innen: Podcast2093.xlsm

érdekes cikkek...