VBA Kārtot - Excel padomi

Satura rādītājs

Excel VBA Macro, lai kārtotu datus. Man nepatīk, kā makro reģistrators izveido papildu kodu šķirošanai. Šķirošanai programmā Excel VBA jābūt vienkāršai. Viena koda rindiņa ar kolonnu, kuru šķirot (pa augšu vai uz leju), un vai ir galvene.

Skatīties video

  • Excel makro reģistrators nedara labu darbu, kārtojot ierakstīšanu.
  • Ja datus var atlasīt, izmantojot Ctrl + * (pazīstams kā pašreizējais reģions)
  • Ar nosacījumu, ka jūs nešķirojat pēc krāsas vai ikonas vai vairāk nekā trīs līmeņos
  • Izmantojiet vecās skolas diapazonu (). CurrentRegion.Sort metode Excel

Video atšifrējums

Uzziniet programmu Excel no MrExcel Podcast, sērija 2093: Šķirošana ar VBA

Sveiki, laipni lūgti atgriezties netcast ēterā, es esmu Bils Jelens. Šodienas jautājums no Džeimsa Hantsvilā. Džeims, es izmantoju makro reģistratoru, lai ierakstītu datu šķirošanas darbību. Pieņemsim, ka Džeimsam šie dati bija jāšķiro pēc sektora un klientiem. Tātad jūs šeit iznākat uz cilni Skats, Makro, Ierakstīt jaunu makro, SortMyReports, Īsinājumtaustiņš Ctrl - es tur ierakstīšu Shift + S un noklikšķiniet uz Labi. Labi, tāpēc no šejienes mēs darām: Dati, Kārtot un mēs vēlamies teikt, ka mēs vēlamies kārtot pēc sektora un pēc tam pievienot līmeni un kārtot pēc klienta un noklikšķiniet uz Labi. Lejā apakšējā kreisajā stūrī noklikšķiniet uz Pārtraukt ierakstīšanu. Labi, tāpēc tur ir. Šķiet, ka ir strādājis, vai ne?

Bet šeit ir problēma: rīt jums būs vairāk datu vai mazāk datu vai, ziniet, neatkarīgi no tā. Un tas ierakstītais makro ir vienkārši briesmīgs. Apskatīsim, es darīšu Alt + F8 un apskatīšu SortMyReport, to rediģēšu. Labi, un tas ir viss, ko viņi ierakstīja, tātad SortFields. Notīriet un pēc tam ar SortFields izveidoja jaunu kārtošanu. Pievienojiet, un tie ir kodēti, un tur ir 568 rindas un visi sīkumi.

Tagad kārtoju dienu, man bija ļoti, ļoti viegli. Labi, un pēc tam programmā Excel 2007 viņi pievienoja Kārtot pēc ikonas, Kārtot pēc krāsas, Kārtot pēc fonta krāsas, spēju būt 15 līmeņu kārtojumiem un viss ir kļuvis ļoti, ļoti nenormāls. Tātad, es vairs neizmantoju ierakstīto makro. Es vienkārši eju veco skolu.

Tagad es pārslēgšos atpakaļ uz programmu Excel. Šeit ir noteikumi par šīs vecās skolas šķirošanas darbu, labi. Virziens virs katras kolonnas: šai virsrakstam jābūt vienā rindā, nevis divās rindās. Ja jums ir virsraksti, un tas ir labi, ja jums ir nosaukumi augšā. Starp nosaukumiem un pirmo virsrakstu ir nepieciešama pilnīgi tukša rinda. Ja labajā pusē ir piezīmes: sieva zvana ar pārtikas preču sarakstu: “Hei, mīļā, apstājies, braucot mājās. Iegūstiet pienu, olas un degvīnu. ” Starp jūsu datiem un to ir jābūt pilnīgi tukšai kolonnai. Un, ja apakšā ir katlu plāksnītes, pārliecinieties, ka starp pēdējo datu bitu un šīm piezīmēm ir pilnīgi tukša rinda.

Mans galvenais mērķis ir, lai mums būtu iespēja nokļūt jebkurā šūnā: augšējā kreisajā stūrī šūnā šie dati un nospiediet taustiņu kombināciju Ctrl + *, un tā atlasīs sakārtojamos datus. Tagad es nospiedīšu Ctrl +. kas mūs noved pie šī stūra un pēc tam Ctrl +. aizvedīs mūs apakšējā labajā stūrī, Ctrl +. aizved mūs apakšējā kreisajā stūrī. Labi, tāpēc, ja Ctrl + * pareizi atlasīs jūsu datus, viss būs lieliski. Ja jūs ievietojat savu pārtikas preču sarakstu H slejā, un mēs redzam, ka šeit esam ieradušies un Ctrl + *, tagad mēs kārtojam pārtikas preču sarakstu kā daļu no lietas, un jūsu pārtikas preču saraksts tiks pieskrūvēts. Vai arī mēs atsauksim: ja šīs rindas šeit nav, tagad mēs darām Ctrl + *, redzam, ka mēs tagad būsim bezjēdzīgi, jo viņiem vairs nav virsrakstu, labi?

Tātad, ja jūs izmantojat manu kodu, pārliecinieties, vai visi šie noteikumi ir patiesi: nekārtot manu krāsu, nekārtot manu ikonu, 3 vai mazāk kārtot līmeņus. Atsaukt, labi. Tātad, lūk, ko mēs zinām: mēs zinām, ka katru dienu mūsu dati sāksies A5. Ja mēs nezinām, cik rindu vai cik - labi, pat cik kolonnu mums varētu būt. Es nevaru iedomāties situāciju, kad kolonnas ir mainītas, bet noteikti mainīsies rindu skaits. Tātad Alt + F11, mēs vienkārši sāksim no šīs augšējā kreisā stūra šūnas. Tātad diapazons, manā gadījumā ir “A5”. CurrentRegion. Pašreizējais reģions ir šis lieliskais ēkas īpašums, kas saka, ka mēs nospiedīsim taustiņu kombināciju Ctrl + Shift + *, un viss, kas tur iekļauts, tiks sakārtots. Un mēs darām .Kārtot. .Kārtot, labi.

Tagad, lūk, lieta. Ja vēlaties veikt viena līmeņa kārtošanu, ir viegli: Key1: =. : = un mēs vienkārši sakām, ka tas būs Range - Ak, es aizmirstu, kas tas ir. Tas bija Sektors, kur Sektors? Sektors atrodas C slejā. Tātad, manā gadījumā C5, diapazons (“C5”) un pēc tam pasūtījums1: = xlAscending. Es tur nospiedu lejupvērsto bultiņu un pēc tam Tab. Labi tagad, es varētu turpināt iet pa labi, bet es to nedarīšu. Es eju uz jaunu rindiņu, tāpēc atstarpe, pasvītrojums, lai pārietu uz jaunu rindiņu, turpina šo koda rindu, labi? Un, ja man ir otrā līmeņa kārtošana: Key2: = un šajā gadījumā es vēlos kārtot pēc klienta, kas atrodas D slejā, tātad D5. Un pēc tam rīkojums2: xlAscending. Skaists.

Man nav trešā līmeņa kārtošanas, bet, ja jūs to izdarītu, tas būtu Key3 un pēc tam Order3. Un tad šis nākamais, kas jums jādara, ir Header, labi? Tātad, Header: = xlGuess, ka tur jūs saņemat daudz nepatikšanas. Un tāpēc mēs teiksim xlYes, noteikti kā Header. Pat vecajās dienās makro ierakstītājs izmantoja xlGuess. Es ienīstu Excel uzminēšanu.

Tieši tā. Viena koda rindiņa, tas ir viss, kas jums jādara, un tas darbosies ar vairāk rindām, mazāk rindām. Tā ir skaista, skaista lieta. Labi, tāpēc mēs atgriezīsimies šeit programmā Excel. Ctrl + Shift + S joprojām ir piešķirta lieta. Tagad - ja jūs tikko pārslēdzāties uz VBA un pats to ierakstījāt, varat doties uz Alt + F8, atrast sava makro nosaukumu, noklikšķināt uz Opcijas un ierakstīt tur Ctrl + Shift + S, vai arī mēs to varam pat piešķirt Īsinājumtaustiņš šeit, ātrās piekļuves rīkjoslā. Ar peles labo pogu noklikšķiniet uz Pielāgot ātrās piekļuves rīkjoslu, kur es izvēlos kādu no mūsu makro. Man ir makro ar nosaukumu SortMyReport, noklikšķiniet uz Pievienot - es ienīstu tur esošo mazo blokshēmu. Mēs to pārveidosim, un es labprāt vēlētos, lai tur būtu kāda veida situācija no A līdz Z, bet, protams, tā nav. Varbūt tā bulta, kas zina, kas zina, vienkārši izvēlas jebko.Maģiskā 8-bumba, es nezinu. Es šeit izvēlēšos šo mazo puisi, noklikšķiniet uz Labi, noklikšķiniet uz Labi. Labi, tāpēc tagad mūsu dati ir sakārtoti pēc datuma, es izvēlos - un nav svarīgi, ko es izvēlos. Tas vienmēr atgriezīsies un kārtos to no A5, es noklikšķinu uz mazā puiša, un mani dati tagad tiek sakārtoti pēc sektora, sektorā, pēc klienta. Tas darbojas lieliski, labi?

Tātad, ja jūs esat Macro Recorder ventilators, labi, es no sirds apsveicu jūs. Bet šajās dienās makro ierakstītāja kods šķirošanai - šķirošanai VBA ir tik daudz vienkāršāks; lai atgrieztos, vienkārši izmantojiet šo kodu, vienu rindiņu.

Nu, parasti tā ir vieta, kur es mēģinu likt jums nopirkt šo grāmatu, taču šodien es domāju, ka jums vajadzētu ieskatīties šajā grāmatā: Excel 2016 VBA un Treisija un es pats. Oho! Pārbaudiet to. Es nesapratu, ka ir versija citā valodā. Mēs pilnībā novirzīsim makro mācīšanās līkni no pirmā makro ierakstīšanas līdz vajadzīgajam kodam.

Nu, vienkārša šodienas apkopošana: Excel makro ierakstītājs nedara labu darbu ierakstīšanas, kārtošanas laikā: ja datus var atlasīt, izmantojot Ctrl + *, kas pazīstams kā pašreizējais reģions, ja vien jūs neveicat šķirošanu, piemēram, krāsu vai ikonu vai vairāk nekā trīs līmeņos, vienkārši izmantojiet vecās skolas diapazonu (). CurrentRegion.Sort metode VBA, lai kārtotu.

Es gribu pateikties Džeimsam par šī jautājuma nosūtīšanu. Es vēlos pateikties, ka apstājāties. Tiksimies nākamreiz, lai skatītu citu netcast raidījumu no.

Lejupielādēt failu

Lejupielādējiet faila paraugu šeit: Podcast2093.xlsm

Interesanti raksti...