I denne artikel har vi givet oplysninger om, hvordan du sorterer regnearkene i projektmappen i stigende eller faldende rækkefølge, afhængigt af regnearksnavnet.
I den vedhæftede projektmappe er der to moduler:-
Modul 1 indeholder makroen "SortWorksheets", der er tildelt knappen "Send" på "Makro" -arket.
Denne makro sorterer alle regnearkene undtagen det første regneark, som er hovedarket med navnet "Makro".
Når brugeren klikker på knappen "Send", sorteres alle arkene efter "Makro" -ark i stigende eller faldende rækkefølge, som brugeren har valgt i kombinationsboksen.
Modul 2 indeholder to makroer “AscendingSortOfWorksheets” og “DecendingSortOfWorksheets”. Når du kører makroen "AscendingSortOfWorksheets", sorterer den alle de regneark, der er til stede i projektmappen i den stigende rækkefølge. Når du kører makroen "DecendingSortOfWorksheets", sorterer den alle de regneark, der findes i projektmappen i den faldende rækkefølge.
Logisk forklaring
Boblesorteringsalgoritme bruges til at sortere regnearkene i projektmappen.
Boblesorteringsalgoritme sammenligner hvert element i arrayet med andre elementer i arrayet og bytter dem afhængigt af, om de skal sortere i stigende eller faldende rækkefølge. I hvert trin bobler den den mindste eller største værdi til toppen af arrayet. Algoritme gentages, indtil alle elementerne er sorteret.
I denne artikel er vores mål at sortere regnearkene i projektmappen efter deres navn. Arbejdsbog, som vi bruger, består af forskellige regneark med navne som Financial Dashboard, Human Resources og Sales Dashboard.
For at nå dette mål har vi brugt Bubble sorteringsalgoritme til at sortere regnearkene.
Kode forklaring
SortWorksheets Makro
Denne makro kører, når brugeren klikker på knappen Send. Denne makro sorterer alle regnearkene i projektmappen efter deres navne undtagen det første regneark i projektmappen. Afhængigt af den værdi, som brugeren har valgt i kombinationsboksen, sorterer den regnearkene i stigende eller faldende rækkefølge.
Følg nedenstående trin for at tilføje kombinationsboks:-
-
Gå til fanen Udvikler> Klik på Indsæt> Klik på kombinationsboksikonet under formularkontrol
-
Højreklik på kombinationsboksen, og klik på formatkontrol.
-
Gå til fanen Kontrol, Tildel elementet, og forbind kombinationsboksen med celle XFC1.
ComboBoxValue = Range ("XFC1"). Værdi
Kombinationsboks på "Makro" -arket er knyttet til celle XFC1. Så for at få værdi fra celle XFC1 bruges ComboBoxValue -variablen.
For i = 2 Til SCount - 1
FOR loop begynder med variabel i, værdi starter fra 2, da vi ønsker at udelukke første regneark i projektmappen fra sortering.
Hvis ComboBoxValue = 1 Så
IF -tilstand bruges til at kontrollere, om der skal sorteres i stigende eller faldende rækkefølge. Hvis ComboBoxValue -værdien er 1, skal du sortere i stigende rækkefølge, ellers faldende rækkefølge.
Arbejdsark sorteret i stigende rækkefølge
Arbejdsark sorteret i faldende rækkefølge
AscendingSortOfWorksheets og DecendingSortOfWorksheets
AscendingSortOfWorksheets og DecendingSortOfWorksheets makroer kan køres ved at trykke på Alt + F8 genvejstast eller Gå til fanen Udvikler> Klik på Makro> vælg makroen og klik på Kør. De sorterer alle de regneark, der findes i projektmappen. Disse makroer kan også køres på andre projektmapper.
Regneark sorteret efter at have kørt AscendingSortOfWorksheets -makro
Regneark sorteret i stigende rækkefølge DecendingSortOfWorksheets -makro
Følg venligst nedenstående for koden
Sub AscendingSortOfWorksheets () 'Sorter regneark i en projektmappe i stigende rækkefølge Dim SCount, i, j As Integer' Til deaktivering af skærmopdateringer Application.ScreenUpdating = False 'Får samlet nr. af arbejdsark i projektmappe SCount = Worksheets.Count 'Kontrol af tilstanden, om antallet af regneark er større end 1, Hvis antallet er en, afslut derefter proceduren Hvis SCount = 1 Afslut derefter Sub' Brug af boblesort som sorteringsalgoritme 'Looping through all regneark For i = 1 til SCount - 1 'Sammenligning af valgt arknavn med andre ark til flytning af valgt ark til passende position For j = i + 1 Til SCount Hvis regneark (j) .navnRegneark (i) .Name Herefter Arbejdsark (j). Flyt før: = Regneark (i) Slut Hvis Næste j Næste i Afslut Sub
Hvis du kunne lide denne blog, kan du dele den med dine venner på Facebook. Du kan også følge os på Twitter og Facebook.
Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet