Sadržaj
Udžbenik pokazuje kako možete brzo poredati Excel radne listove abecednim redom pomoću VBA koda i alata Workbook Manager.
Microsoft Excel nudi niz brzih i jednostavnih načina za sređivanje stupce ili retke po abecednom redu. Ali postoji samo jedan način za preuređivanje radnih listova u Excelu - povucite ih na željenu poziciju na traci s karticama listova. Kada je riječ o abecednom rasporedu kartica u stvarno velikoj radnoj knjizi, to može biti dug i pogrešan način. Tražite alternativu koja štedi vrijeme? Postoje samo dva: VBA kod ili alati trećih strana.
Kako abecedno poredati kartice u Excelu pomoću VBA
U nastavku ćete pronaći tri primjera VBA koda za sortiranje Excela listova uzlazno, silazno i u bilo kojem smjeru prema izboru korisnika.
Implicirajući da imate iskustva s VBA, navest ćemo samo osnovne korake za dodavanje makronaredbe na vaš radni list:
- U svojoj Excel radnoj knjizi pritisnite Alt + F11 da biste otvorili Visual Basic Editor.
- U lijevom oknu desnom tipkom miša kliknite Ova radna knjiga , a zatim kliknite Umetni > Modul .
- Zalijepite VBA kod u prozor koda.
- Pritisnite F5 za pokretanje makronaredbe.
Za detaljne upute korak po korak pogledajte Kako umetnuti i pokrenuti VBA kod u Excelu.
Savjet. Ako želite zadržati makronaredbu za daljnju upotrebu, svakako spremite svoju datoteku kao Excel radnu knjigu s omogućenom makronaredbom (.xlsm).
Alternativno, možete preuzeti našu oglednu radnu knjigu Alphabetize Excel Tabs, omogućiti sadržaj ako se to od vas zatraži i pokrenuti željenu makronaredbu izravno iz nje. Radna knjiga sadrži sljedeće makronaredbe:
- TabsAscending - poredajte listove abecednim redom od A do Z.
- TabsDescending - rasporedite listove u obrnutim redoslijedom, od Z do A.
- AlphabetizeTabs - sortirajte kartice listova u oba smjera, uzlazno ili silazno.
S preuzetom uzorkom radne knjige i otvorenom u svoj Excel, otvorite vlastitu radnu knjigu u koju želite poredati kartice abecednim redom, pritisnite Alt + F8 , odaberite željenu makronaredbu i kliknite Pokreni .
Razvrstaj kartice Excel abecednim redom od A do Z
Ovaj mali makro raspoređuje listove u trenutnoj radnoj knjizi uzlaznim alfanumeričkim redoslijedom , prvo radne listove čija imena počinju brojevima, zatim listove od A do Z.
Podkartice Uzlazno() Za i = 1 Za Application.Sheets.Count For j = 1 Za Application.Sheets.Count - 1 Ako UCase$(Application.Sheets(j).Name) > UCase$(Application.Sheets(j + 1).Name) Then Sheets(j).Move after:=Sheets(j + 1) End If Next Next MsgBox "Kartice su poredane od A do Z." End SubRasporedi Excel kartice od Z do A
Ako želiš poredati svoje listove silaznim alfanumeričkim redoslijedom (Z do A, zatim listovi s numeričkim nazivima), tada upotrijebi sljedeći kod:
Sub TabsDescending() For i = 1 ToApplication.Sheets.Count For j = 1 To Application.Sheets.Count - 1 If UCase$(Application.Sheets(j).Name) < UCase$(Application.Sheets(j + 1).Name) Then Application.Sheets(j).Move after:=Application.Sheets(j + 1) End If Next Next MsgBox "Kartice su poredane od Z do A. " End SubRazvrstaj kartice abecednim redom uzlazno ili silazno
Ova makronaredba omogućuje vašim korisnicima da odluče kako sortirati radne listove u određenoj radnoj knjizi, abecednim redom od A do Ž ili obrnutim redoslijedom.
Budući da standardni dijaloški okvir (MsgBox) u programu Excel VBA dopušta samo odabir između pregršt unaprijed definiranih gumba, stvorit ćemo vlastiti obrazac (UserForm) s tri prilagođena gumba: A do Z , Z do A i Odustani .
Za ovo otvorite Visual Basic Editor, desnom tipkom miša kliknite Ova radna knjiga i kliknite Umetni > Korisnički obrazac . Imenujte svoj obrazac SortOrderFrom i dodajte mu 4 kontrole: oznaku i tri gumba:
Zatim pritisnite F7 (ili dvaput kliknite obrazac ) da otvorite prozor Kôd i tamo zalijepite donji kod. Kod presreće klikove gumba i dodjeljuje jedinstvenu oznaku svakom gumbu:
Private Sub CommandButton1_Click() Me.Tag = 1 Me.Hide End Sub Private Sub CommandButton2_Click() Me.Tag = 2 Me.Hide End Sub Private Sub CommandButton3_Click () Me.Tag = 0 Me.Hide End SubOvisno o tome klikne li korisnik gumb A do Z ili Z do A na vašem obrascu, sortirajte kartice uuzlazni abecedni red (odabrano prema zadanim postavkama) ili silazni abecedni red; ili zatvorite obrazac i ne učinite ništa u slučaju Odustani . To se radi sa sljedećim VBA kodom, koji umetnete na uobičajeni način preko Insert > Module .
Sub AlphabetizeTabs() Dim SortOrder As Integer SortOrder = showUserForm If SortOrder = 0 Then Exit Sub For x = 1 To Application.Sheets.Count For y = 1 To Application.Sheets.Count - 1 If SortOrder = 1 Then If UCase$(Application.Sheets(y).Name) > UCase$(Application.Sheets(y + 1).Name) Then Sheets(y).Move after:=Sheets(y + 1) End If ElseIf SortOrder = 2 Then If UCase$(Application.Sheets(y).Name) < UCase$(Application.Sheets(y + 1).Name) Then Sheets(y).Move after:=Sheets(y + 1) End If End If Next Next End Sub Function showUserForm() As Integer showUserForm = 0 Load SortOrderForm SortOrderForm .Show (1) showUserForm = SortOrderForm.Tag Unload SortOrderForm End FunctionAko još niste baš zadovoljni s VBA, možete jednostavno preuzeti našu oglednu radnu knjigu za abecedni redoslijed kartica, otvoriti je u svom Excelu uz vlastitu datoteku gdje želite za sortiranje kartica i pokrenite makronaredbu AlphabetizeTabs iz svoje radne knjige:
Odaberite željeni redoslijed sortiranja, recimo, A do Z i promatrajte rezultate:
Savjet. S VBA također možete izraditi kopije svojih Excel radnih listova. Kod je dostupan ovdje: Kakoduplicirati list u Excelu s VBA.
Kako poredati Excel kartice abecednim redom s Ultimate Suiteom
Korisnici našeg Ultimate Suitea za Excel ne moraju se petljati s VBA - oni imaju multi - na raspolaganju im je funkcionalni upravitelj radnih knjiga:
S ovim alatom dodanim na vašu vrpcu programa Excel, abecedno sređivanje kartica vrši se jednim pritiskom na gumb, točno onako kako bi trebalo biti!
Ako ste znatiželjni istražiti ovaj i više od 70 profesionalnih alata za Excel, probna verzija našeg Ultimate Suitea dostupna je za preuzimanje ovdje.
Zahvaljujem na čitanju i nadamo se da se vidimo na našem blogu sljedeći tjedan!