Lajittele työkirjan laskentataulukot Microsoft Excelin VBA: n avulla

Anonim

Tässä artikkelissa olemme antaneet tietoja työkirjan laskentataulukoiden lajittelemisesta nousevassa tai laskevassa järjestyksessä laskentataulukon nimen mukaan.

Liitteenä olevassa työkirjassa on kaksi moduulia:-

Moduuli 1 sisältää makron "SortWorksheets", joka on määritetty "Lähetä" -painikkeelle "Makro" -arkilla.

Tämä makro lajittelee kaikki laskentataulukot paitsi ensimmäisen laskentataulukon, joka on pääarkki nimeltä "Makro".

Kun käyttäjä napsauttaa Lähetä -painiketta, kaikki taulukot Makro -taulukon jälkeen lajitellaan nousevaan tai laskevaan järjestykseen, jonka käyttäjä on valinnut yhdistelmäruudussa.

Moduuli 2 sisältää kaksi makroa "AscendingSortOfWorksheets" ja "DecendingSortOfWorksheets". Suorittaessa AscendingSortOfWorksheets -makroa se lajittelee kaikki työkirjassa olevat laskentataulukot nousevassa järjestyksessä. Kun käytät DecendingSortOfWorksheets -makroa, se lajittelee kaikki työkirjassa olevat laskentataulukot laskevassa järjestyksessä.

Looginen selitys

Työkirjan laskentataulukoiden lajitteluun käytetään kuplalajittelualgoritmia.

Kuplan lajittelualgoritmi vertaa jokaista taulukon kohdetta muihin taulukon kohteisiin ja vaihtaa ne sen mukaan, lajitellaanko ne nousevassa vai laskevassa järjestyksessä. Jokaisessa vaiheessa se kuplittaa pienimmän tai suurimman arvon taulukon alkuun. Algoritmi toistuu, kunnes kaikki kohteet on lajiteltu.

Tässä artikkelissa tavoitteemme on lajitella työkirjan laskentataulukot niiden nimen mukaan. Käyttämämme työkirja koostuu erilaisista laskentataulukoista, joiden nimet ovat Financial Dashboard, Human Resources ja Sales Dashboard.

Tämän tavoitteen saavuttamiseksi olemme käyttäneet laskentataulukoiden lajitteluun kuplalajittelualgoritmia.

Koodin selitys

SortWorksheets -makro

Tämä makro suoritetaan, kun käyttäjä napsauttaa Lähetä -painiketta. Tämä makro lajittelee kaikki työkirjan laskentataulukot niiden nimien mukaan lukuun ottamatta työkirjan ensimmäistä laskentataulukkoa. Käyttäjä valitsee yhdistelmäruudussa arvon mukaan laskentataulukot nousevaan tai laskevaan järjestykseen.

Voit lisätä yhdistelmäruudun seuraavasti:-

  1. Siirry Kehittäjä -välilehteen> Napsauta Lisää> Napsauta yhdistelmäruudun kuvaketta lomakkeen hallinnan alla

  1. Napsauta hiiren kakkospainikkeella yhdistelmäruutua ja napsauta muodonhallintaa.

  1. Siirry ohjausvälilehteen, määritä kohde ja linkitä yhdistelmäruutu soluun XFC1.

ComboBoxValue = Alue ("XFC1"). Arvo

Makro -laskentataulukon yhdistelmäruutu on linkitetty soluun XFC1. Joten arvon saamiseksi solusta XFC1 käytetään ComboBoxValue -muuttujaa.

I = 2 SCount - 1

FOR -silmukka alkaa muuttujalla i, arvo alkaen 2, koska haluamme sulkea työkirjan ensimmäisen laskentataulukon lajittelun ulkopuolelle.

Jos ComboBoxValue = 1 Sitten

IF -ehtoa käytetään tarkistamaan, lajitellaanko nouseva vai laskeva järjestys. JOS ComboBoxValue -arvo on 1, lajittele sitten nousevaan järjestykseen, muuten laskevaan järjestykseen.

Laskentataulukot on järjestetty nousevaan järjestykseen

Laskentataulukot on järjestetty laskevaan järjestykseen

NousevaSortOfWorksheets ja DecendingSortOfWorksheets

NousevatSortOfWorksheets- ja DecendingSortOfWorksheets -makrot voidaan suorittaa painamalla Alt + F8 -pikanäppäintä tai Siirry kehittäjä -välilehdelle> Napsauta Makro> valitse makro ja napsauta suorita. He lajittelevat kaikki työkirjan sisältämät laskentataulukot. Näitä makroja voidaan käyttää myös muissa työkirjoissa.

Laskentataulukot lajiteltu AscendingSortOfWorksheets -makron suorittamisen jälkeen

Laskentataulukot on järjestetty nousevaan järjestykseen DecendingSortOfWorksheets -makro

Seuraa koodia alla

 Sub AscendingSortOfWorksheets () 'Lajittele työkirjan laskentataulukot nousevassa järjestyksessä Dim SCount, i, j As Integer' Näyttöpäivitysten poistamiseksi käytöstä Application.ScreenUpdating = False 'Getting total no. laskentataulukoista työkirjassa SCount = Worksheets.Count 'Tarkistetaan, onko laskentataulukoiden lukumäärä suurempi kuin 1, Jos määrä on yksi, lopeta menettely Jos SCount = 1 Sitten Lopeta alaosa' Kuplan lajittelun käyttäminen lajittelualgoritmina ' = 1 SCount - 1 'Valitun arkin nimen vertailu muihin arkeihin valitun arkin siirtämiseksi oikeaan kohtaan J = i + 1 SCount If -laskentataulukoihin (j).  Laskentataulukot (i). Nimi Sitten Laskentataulukot (j). Siirrä ennen: = Laskentataulukot (i) Lopeta, jos seuraava j Seuraava Seuraava Loppuosa 

Jos pidit tästä blogista, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.

Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse