Spis treści
Samouczek pokazuje, jak można szybko posortować arkusze Excela w kolejności alfabetycznej za pomocą kodu VBA i narzędzia Workbook Manager.
Microsoft Excel oferuje wiele szybkich i łatwych sposobów na ułożenie kolumn lub wierszy w porządku alfabetycznym. Ale istnieje tylko jedna metoda zmiany układu arkuszy w programie Excel - przeciąganie ich na żądaną pozycję na pasku zakładek arkusza. Jeśli chodzi o alfabetyzację zakładek w naprawdę dużym skoroszycie, może to być długa i błędna droga. Szukasz alternatywy oszczędzającej czas? Istnieją tylko dwie: kod VBAlub narzędzia innych firm.
Jak alfabetyzować zakładki w Excelu za pomocą VBA
Poniżej znajdziesz trzy przykłady kodu VBA do sortowania arkuszy Excela rosnąco, malejąco i w dowolnym kierunku na podstawie wyboru użytkownika.
Sugerując, że masz pewne doświadczenie z VBA, nakreślimy tylko podstawowe kroki, aby dodać makro do arkusza:
- W swoim skoroszycie programu Excel naciśnij Alt + F11, aby otworzyć edytor Visual Basic.
- W lewym panelu kliknij prawym przyciskiem myszy ThisWorkbook , a następnie kliknij Wkładka > Moduł .
- Wklej kod VBA w oknie Code.
- Naciśnij F5, aby uruchomić makro.
Szczegółowe instrukcje krok po kroku znajdziesz w rozdziale Jak wstawić i uruchomić kod VBA w Excelu.
Wskazówka. Jeśli chcesz zachować makro do dalszego wykorzystania, pamiętaj, aby zapisać plik jako skoroszyt Excela z obsługą makr (.xlsm).
Alternatywnie możesz pobrać nasz przykładowy skoroszyt Alphabetize Excel Tabs, włączyć zawartość, jeśli zostaniesz o to poproszony, i uruchomić żądane makro bezpośrednio z niego. Skoroszyt zawiera następujące makra:
- TabsAscending - posortować arkusze alfabetycznie od A do Z.
- TabsDescending - ułóż arkusze w odwrotnej kolejności, od Z do A.
- AlphabetizeTabs - sortować karty arkuszy w obu kierunkach, rosnąco lub malejąco.
Po pobraniu przykładowego skoroszytu i otwarciu go w programie Excel, otwórz swój własny skoroszyt, w którym chcesz alfabetyzować zakładki, naciśnij Alt + F8 , wybierz żądane makro i kliknij Uruchom .
Sortowanie zakładek programu Excel alfabetycznie od A do Z
To małe makro układa arkusze w bieżącym skoroszycie w rosnący porządek alfanumeryczny , najpierw arkusze, których nazwy zaczynają się od cyfr, potem arkusze od A do 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 MsgBox "Zakładki zostały posortowane od A do Z." End SubUporządkowanie zakładek Excela od Z do A
Jeśli chcesz posortować swoje arkusze w malejący porządek alfanumeryczny (od Z do A, następnie arkusze z nazwami numerycznymi), a następnie użyj następującego kodu:
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 MsgBox "Zakładki zostały posortowane od Z do A." End SubAlfabetycznie ustawiaj zakładki w kolejności rosnącej lub malejącej
Makro to pozwala użytkownikom zdecydować, jak posortować arkusze w danym skoroszycie, alfabetycznie od A do Z lub w odwrotnej kolejności.
Ponieważ standardowe okno dialogowe (MsgBox) w Excelu VBA pozwala jedynie na wybór z garści predefiniowanych przycisków, stworzymy własny formularz (UserForm) z trzema niestandardowymi przyciskami: Od A do Z , Z do A oraz Anuluj .
W tym celu należy otworzyć edytor Visual Basic, kliknąć prawym przyciskiem myszy ThisWorkbook i kliknij Wkładka > UserForm . Name your form SortOrderFrom , i dodać do niego 4 kontrolki: etykietę i trzy przyciski:
Następnie naciśnij F7 (lub kliknij dwukrotnie na formularz), aby otworzyć Kod Kod ten przechwytuje kliknięcia przycisków i przypisuje każdemu z nich unikalny tag:
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 SubW zależności od tego, czy użytkownik kliknie przycisk Od A do Z lub Z do A na swoim formularzu, posortować zakładki w kolejności alfabetycznej rosnącej (wybranej domyślnie) lub malejącej; albo zamknąć formularz i nie robić nic w przypadku Anuluj Do tego celu służy następujący kod VBA, który wstawia się w zwykły sposób poprzez Wkładka > Moduł .
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 Next Next End Sub Function showUserForm() As Integer showUserForm = 0 Załaduj SortOrderForm SortOrderForm.Show (1) showUserForm = SortOrderForm.Tag Unload SortOrderForm End FunctionJeśli nie czujesz się jeszcze zbyt dobrze w VBA, możesz po prostu pobrać nasz przykładowy skoroszyt do alfabetyzacji zakładek, otworzyć go w Excelu obok własnego pliku, w którym chcesz posortować zakładki, i uruchomić program AlphabetizeTabs makro z twojego skoroszytu:
Wybierz preferowaną kolejność sortowania, powiedzmy, Od A do Z , i obserwować wyniki:
Podpowiedź. Za pomocą VBA można również tworzyć kopie arkuszy Excela. Kod jest dostępny tutaj: Jak zduplikować arkusz w Excelu za pomocą VBA.
Jak sortować karty Excela alfabetycznie za pomocą Ultimate Suite
Użytkownicy naszego pakietu Ultimate Suite dla Excela nie muszą bawić się VBA - mają do dyspozycji wielofunkcyjny Workbook Manager:
Dzięki temu narzędziu dodanemu do wstążki Excela, alfabetyzacja zakładek odbywa się za pomocą jednego kliknięcia przycisku, dokładnie tak, jak powinno być!
Jeśli jesteś ciekawy tego i 70+ innych profesjonalnych narzędzi dla Excela, wersja próbna naszego Ultimate Suite jest dostępna do pobrania tutaj.
Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!