Kui töötate Excelis paljude töölehtedega, teate, et selle haldamine võib muutuda probleemiks.
Kui teil on rohkem kui paar töölehte, peate need käsitsi korraldama.
Kui lihtne see oleks, kui oleks olnud võimalus Excelis töölehti kiiresti sortida.
Kuigi selle jaoks pole sisseehitatud funktsiooni, saab seda teha (lihtsalt) VBA abil.
Selles õpetuses annan teile koodi ja täpsed sammud, mida peate Exceli töölehtede sortimiseks järgima.
Töölehtede sortimiseks kasvavas või kahanevas järjekorras saate koodi muuta.
VBA -kood Exceli töölehtede sortimiseks
Allpool on kood, mis sorteerib töölehed tähestikulises järjekorras kohe pärast nende käivitamist.
Alam SortWorksheetsTabs () Application.ScreenUpdating = Vale Dim ShCount täisarvuna, i täisarvuna, j As Integer ShCount = Sheets.Count For i = 1 to ShCount - 1 For j = i + 1 To Shount if UCase (Sheets (j). Nimi) <UCase (Sheets (i). Nimi) Seejärel Sheets (j). Liigu enne: = Sheets (i) End If Next j Next i Application. ScreenUpdating = True End Sub
Ülaltoodud on lihtne kood, mida kasutatakse järgmiste silmuste jaoks, et analüüsida iga töölehte kõigi töölehtede suhtes.
See võrdleb töölehe nime kõigi töölehtedega ja liigutab selle nime järgi tähestikulises järjekorras.
Seejärel liigub see järgmisele töölehele ja kontrollib seda kõigi töölehtede suhtes.
Seda protsessi korratakse kõigi töölehtede puhul ja lõpptulemuseks on töölehtede järjestus tähestikulises järjekorras.
Selle koodi kohta peate teadma mõnda olulist asja:
- Funktsiooni UCase kasutatakse veendumaks, et väiketähti ja suurtähti ei kohelda erinevalt.
- Application.ScreenUpdating väärtus on koodi alguses väärtuseks False ja koodi lõpus väärtuseks True. See tagab, et koodi töötamise ajal ei näe te seda ekraanil. See aitab kiirendada ka koodi täitmist.
Kui soovite töölehti sortida kahanevas järjekorras, peate muutma ainult (suurem kui) märki.
Allolev kood sorteerib töölehed kahanevas järjekorras:
'See kood sorteerib töölehed tähestikulises järjekorras Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 j = i + 1 Kui UCase (Sheets (j) .Name)> UCase (Sheets (i) .Name) Siis Sheets (j). Liigu enne: = Sheets (i) End If Next j Next i Application.ScreenUpdating = True End Sub
Samuti saate anda kasutajale võimaluse valida, kas ta soovib sortida kasvavas/kahanevas järjekorras.
Allolevas koodis kuvatakse sõnumikast ja kasutaja saab valida sortimise järjekorra.
Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer Dim SortOrder As VbMsgBoxResult SortOrder = MsgBox ("Valige kasvava järjekorra jaoks Jah ja kahanevas järjekorras ei", vbYesNoCCancel) i = 1 ShCountile - 1 j = i + 1 ShCountile, kui SortOrder = vbJah, siis kui UCase (Sheets (j) .Name) UCase (Sheets (i) .Name) Siis Sheets (j). Liigu enne: = Sheets (i) Lõpp, kui lõpp, kui järgmine j Järgmine i Application.ScreenUpdating = Tõeline lõpp
Ülaltoodud kood käivitamisel näitab sõnumit, nagu allpool näidatud. See sorteerib valiku alusel (Jah tõusva ja Ei kahaneva puhul).
Kui klõpsate nuppu Tühista, peatub kood ja midagi ei juhtu.
Märge: Sortimist ei saa tagasi võtta. Kui soovite säilitada ka algse tellimuse, tehke töövihikust koopia.
Ettevaatust: Ülaltoodud kood töötab enamikul juhtudel. Üks valdkond, kus see annab teile vale tulemuse, on vahekaartide nimed, näiteks Q12021-2022, Q22021-2022, Q12021-2022, Q22021-2022. Ideaalis sooviksite, et kõik samade aastate vahelehed oleksid koos, kuid seda ei tehta, kuna Q12021-2022 paigutatakse enne Q22021-2022.Kuhu panna VBA kood
Excelil on VBA taustaprogramm, mida nimetatakse VBA redaktoriks.
Peate kopeerima ja kleepima VBA koodi VB Editori mooduli koodi aknasse.
Selleks toimige järgmiselt.
- Klõpsake vahekaarti „Arendaja”. (Kas te ei näe arendaja vahekaarti? Selle hankimise kohta lisateabe saamiseks klõpsake siin).
- Klõpsake suvandil Visual Basic. See avab taustaprogrammis VB redaktori.
- Paremklõpsake VB redaktori Project Exploreri paanil töövihiku mis tahes objekti, kuhu soovite koodi sisestada. (Kui te ei näe Project Explorerit, minge vahekaardile „View” ja klõpsake „Project Explorer”.)
- Minge sisesta ja klõpsake moodulit. See lisab teie töövihikusse mooduliobjekti.
- Kopeerige ja kleepige kood mooduli aknasse.
Kuidas käivitada VBA koodi
Excelis on VBA koodi käivitamiseks erinevaid viise.
Koodi saate käivitada otse Visual Basic Editorist (seda nimetatakse ka VB Editoriks).
Saate töölehele sisestada nupu või kuju ja määrata sellele makro. Kui klõpsate nupul, käivitab see makro koheselt.
Makro saate lisada ka kiirjuurdepääsu tööriistaribale (QAT). Nüüd, kui peate töölehe vahekaarte sorteerima, võite lihtsalt klõpsata QAT -is makrikoodi ikoonil.
Makro käitamise kohta saate lugeda siit - Kuidas makro Excelis käivitada (või vaadake allolevat videot).Samuti võivad teile meeldida järgmised Exceli/VBA õpetused:
- Kuidas sortida andmeid Excelis VBA abil.
- Sorteerige andmed automaatselt valemi abil tähestikulises järjekorras.
- Kuidas Excelis mitmetasandilist andmeid sortida.
- Sissejuhatus Exceli andmete sortimisvalikutesse.
- Exceli VBA automaatne filter: täielik juhend koos näidetega
- Kuidas rühmitada töölehti Excelis
- Kuidas Excelis andmeid ümber pöörata