Innehållsförteckning
I handledningen visas hur du snabbt kan sortera Excel-arbetsblad i alfabetisk ordning med hjälp av VBA-kod och verktyget Workbook Manager.
Microsoft Excel erbjuder ett antal snabba och enkla sätt att ordna kolumner eller rader i alfabetisk ordning. Men det finns bara en metod för att ordna om arbetsblad i Excel - dra dem till önskad position i flikfältet. När det gäller att ordna flikfält i en riktigt stor arbetsbok kan detta vara ett långt och felaktigt sätt. Letar du efter ett tidsbesparande alternativ? Det finns bara två: VBA-kod.eller verktyg från tredje part.
Hur du alfabetiserar flikar i Excel med VBA
Nedan hittar du tre VBA-kodexempel för att sortera Excel-ark uppåt, nedåt och i båda riktningarna beroende på användarens val.
Eftersom vi förutsätter att du har viss erfarenhet av VBA kommer vi endast att beskriva de grundläggande stegen för att lägga till ett makro i ditt kalkylblad:
- I Excel-arbetsboken trycker du på Alt + F11 för att öppna Visual Basic Editor.
- I den vänstra rutan högerklickar du på Denna arbetsbok och klicka sedan på Infoga > Modul .
- Klistra in VBA-koden i fönstret Kod.
- Tryck på F5 för att köra makrot.
Detaljerade steg-för-steg-instruktioner finns i Hur man infogar och kör VBA-kod i Excel.
Tips: Om du vill behålla makrot för vidare användning ska du spara filen som en Excel-arbetsbok med makroaktivering (.xlsm).
Alternativt kan du ladda ner vårt exempel på arbetsbok Alphabetisera Excel-flikar, aktivera innehåll om du blir tillfrågad och köra det önskade makrot direkt därifrån. Arbetsboken innehåller följande makron:
- TabsAscending - sortera ark i alfabetisk ordning från A till Z.
- TabsDescending - Ordna arken i omvänd ordning, från Z till A.
- AlfabetizeTabs - sortera arkflikarna i båda riktningarna, uppåt eller nedåt.
När exempelarbetsboken har laddats ner och är öppen i Excel, öppna din egen arbetsbok där du vill alfabetisera flikarna, tryck på Alt + F8 , välj önskat makro och klicka på Kör .
Sortera Excel-flikar alfabetiskt från A till Z
Det här lilla makrot ordnar arken i den aktuella arbetsboken i stigande alfanumerisk ordning , först arbetsblad vars namn börjar med siffror, sedan blad från A till Z.
Sub TabsAscending() For i = 1 To Application.Sheets.Count For j = 1 To Application.Sheets.Count - 1 If UCase$(Application.Sheets(j).Name)> UCase$(Application.Sheets(j + 1).Name) Then Sheets(j).Move after:=Sheets(j + 1) End If Next Next Next MsgBox "Flikarna har sorterats från A till Z." End SubOrdna Excel-flikar från Z till A
Om du vill sortera dina ark i fallande alfanumerisk ordning (Z till A, sedan ark med numeriska namn), använd sedan följande kod:
Sub TabsDescending() For i = 1 To Application.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 Next MsgBox "Flikarna har sorterats från Z till A." End SubAlfabetisera flikar i stigande eller fallande ordning
Med det här makrot kan användarna bestämma hur arbetsbladen i en viss arbetsbok ska sorteras, alfabetiskt från A till Z eller i omvänd ordning.
Eftersom standarddialogrutan (MsgBox) i Excel VBA endast tillåter val av en handfull fördefinierade knappar, kommer vi att skapa ett eget formulär (UserForm) med tre egna knappar: Från A till Z , Z till A , och Avbryt .
För detta öppnar du Visual Basic Editor, högerklickar på Denna arbetsbok och klicka på Infoga > UserForm . Namn på ditt formulär SortOrderFrom och lägger till fyra kontroller: en etikett och tre knappar:
Därefter trycker du på F7 (eller dubbelklickar på formuläret) för att öppna Kod och klistra in nedanstående kod där. Koden fångar upp knappklick och tilldelar varje knapp en unik tagg:
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 SubBeroende på om användaren klickar på Från A till Z eller . Z till A på formuläret, sortera flikarna i stigande alfabetisk ordning (valt som standard) eller fallande alfabetisk ordning, eller stänga formuläret och inte göra något om det finns en Avbryt Detta görs med följande VBA-kod, som du infogar på vanligt sätt via Infoga > Modul .
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 Next End Sub Function showUserForm() As Integer showUserForm = 0 Load SortOrderForm SortOrderForm.Show (1) showUserForm = SortOrderForm.Tag Unload SortOrderForm End FunctionOm du inte är så bekväm med VBA ännu kan du helt enkelt ladda ner vår arbetsbok Sample Workbook to Alphabetize Tabs, öppna den i Excel tillsammans med din egen fil där du vill sortera flikarna och köra programmet AlfabetizeTabs makro från arbetsboken:
Välj önskad sorteringsordning, till exempel, Från A till Z och observera resultaten:
Tips: Med VBA kan du också skapa kopior av dina Excel-arbetsblad. Koden finns här: Hur du kopierar blad i Excel med VBA.
Hur du sorterar Excel-flikar alfabetiskt med Ultimate Suite
Användarna av vår Ultimate Suite för Excel behöver inte krångla med VBA - de har en multifunktionell arbetsbokshanterare till sitt förfogande:
Med det här verktyget i Excel-bandet kan du alfabetisera flikar med ett enda knapptryck, precis som det ska vara!
Om du är nyfiken på att utforska detta och fler än 70 professionella verktyg för Excel kan du ladda ner en testversion av vår Ultimate Suite här.
Jag tackar dig för att du läste och hoppas att vi ses på vår blogg nästa vecka!