Spis treści
Wdrażanie Makro VBA jest najskuteczniejszą, najszybszą i najbezpieczniejszą metodą wykonywania dowolnych operacji w Excelu. W tym artykule pokażemy, jak posortować tabelę w Excelu z VBA .
Pobierz Workbook
Darmowy ćwiczeniowy zeszyt Excela można pobrać stąd.
Sortowanie tabeli za pomocą VBA.xlsm
Rzeczy, które warto wiedzieć przed wdrożeniem VBA do sortowania tabeli w Excelu
Istnieją pewne parametry, których trzeba często używać podczas pracy z Sortuj sposób VBA Więc tutaj omówimy niektóre z parametrów, abyś był zaznajomiony podczas pisania kodu.
Parametr | Wymagane/ Fakultatywne | Typ danych | Opis |
---|---|---|---|
Kluczowy | Opcjonalnie | Wariant | Określa zakres lub kolumnę, której wartości mają być posortowane. |
Zamówienie | Opcjonalnie | XlSortOrder | Określa kolejność, w jakiej zostanie wykonane sortowanie.
|
Nagłówek | Opcjonalnie | XlYesNoGuess | Określa, czy pierwszy wiersz zawiera nagłówki czy nie.
|
4 Metody wdrażania VBA do sortowania tabeli w Excelu
W tym rozdziale dowiesz się, jak sortowanie tabel Excela poprzez uwzględnienie wartość, kolory, ikony oraz wiele kolumn z VBA kod.
1. wbudowane VBA do sortowania tabeli według wartości w Excelu
Biorąc pod uwagę poniższy przykład posortuj tę tabelę według wartości obecny w Mark kolumna w porządku malejącym.
Kroki:
- Naciśnij Alt + F11 na klawiaturze lub przejdź do zakładki Programista -> Visual Basic otworzyć Edytor Visual Basic .
- W wyskakującym oknie kodu, na pasku menu, kliknij Insert -> Moduł .
- Skopiuj poniższy kod i wklej go do okna kodu.
Sub SortTableValue() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTBL") Set iColumn = Range("SortTBL[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn, SortOn:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With End Sub.
Twój kod jest teraz gotowy do uruchomienia.
Tutaj,
- SortTBL → Określenie nazwy tabeli.
- SortTBL[Marki] -> Określona nazwa kolumny tabeli do sortowania.
- Key1:=iColumn → Określenie zakresu kolumn, aby kod wiedział, którą kolumnę w tabeli posortować.
- Order1:=xlDescending → Określenie zamówienia jako. xlDescending aby posortować kolumnę w porządku malejącym. Jeśli chcesz posortować kolumnę w porządku rosnącym, napisz xlAscending zamiast.
- Nagłówek:= xlYes → Ponieważ kolumna w tej tabeli ma nagłówek, więc określiliśmy go za pomocą xlYes opcja.
- Naciśnij F5 na klawiaturze lub z paska menu wybrać Run -> Run Sub/UserForm. Możesz też po prostu kliknąć na mała ikona Play na pasku podmenu, aby uruchomić makro.
Zobaczysz, że kolumna w twojej tabeli to teraz posortowane w kolejności malejącej .
Read More: Jak posortować dane według wartości w programie Excel (5 prostych metod)
2. wstawianie makra VBA do sortowania tabeli dla wielu kolumn
Można również sortowanie tabeli dla wielu kolumn w Excelu z VBA makro.
Z powyższej tabeli posortujemy kolumny Nazwa oraz Dział w porządku rosnącym.
Kroki:
- W taki sam sposób jak poprzednio, otwórz Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- W oknie kodu skopiuj poniższy kod i wklej go.
Sub SortTable() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("TableValue") Set iColumn1 = Range("TableValue[Name]") Set iColumn2 = Range("TableValue[Department]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscending .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub
Twój kod jest teraz gotowy do uruchomienia.
Tutaj,
- TableValue → Określenie nazwy tabeli.
- TableValue[Nazwa] -> Określona nazwa pierwszej kolumny tabeli do sortowania.
- TableValue[Departament] -> Określona nazwa drugiej kolumny tabeli do sortowania.
- Key1:=iColumn1 → Określenie zakresu kolumn, aby kod wiedział, że pierwsza kolumna w tabeli musi być posortowana.
- Key1:=iColumn2 → Określenie zakresu kolumn, aby kod wiedział, że druga kolumna w tabeli musi być posortowana.
- Order1:=xlAscending → Określenie zamówienia jako. xlAscending aby posortować kolumnę w porządku malejącym. Jeśli chcesz posortować kolumnę w porządku malejącym napisz xlDescending zamiast.
- Nagłówek:= xlYes → Ponieważ kolumny tej tabeli mają nagłówki, określiliśmy je za pomocą xlYes opcja.
- Uruchom ten kod, a otrzymasz oba kolumny tabeli posortowane w porządku rosnącym.
Read More: Jak automatycznie sortować wiele kolumn w programie Excel (3 sposoby)
Podobne lektury
- Jak posortować unikalną listę w Excelu (10 przydatnych metod)
- Sortuj tablicę za pomocą Excel VBA (zarówno rosnąco, jak i malejąco)
- Jak sortować i filtrować dane w programie Excel (kompletny przewodnik)
- Automatyczne sortowanie w Excelu po zmianie danych (9 przykładów)
- Sortowanie losowe w Excelu (Formuły + VBA)
3. wdrożenie makra do sortowania tabeli według koloru komórek w Excelu
Można również sortowanie tabeli według koloru komórki które zawiera.
Mając powyższą tabelę jako nasz przykład, pokażemy, jak posortować ją na podstawie kolorów, które ta tabela przechowuje.
Kroki:
- Jak wcześniej wykazano, otwarte Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- W oknie kodu skopiuj poniższy kod i wklej go.
Sub SortTableColor() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTable") Set iColumn = Range("SortTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Key:=iColumn,Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(255, 217, 102) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(198, 224, 180) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(180, 198, 231) .Header = xlYes .Apply End With End Sub
Twój kod jest teraz gotowy do uruchomienia.
Tutaj RGB kody, które dostarczyliśmy, możesz je znaleźć lub jakiekolwiek inne RGB kod, który chcesz, postępując zgodnie z gifem podanym poniżej.
- Wystarczy kliknąć na kolorowa komórka .
- W Strona główna kliknij na zakładkę strzałka obok Kolor wypełnienia następnie wybierz Więcej kolorów . You will see the RGB kody w Niestandardowe zakładka pojawiła się Kolory wyskakujące okienko.
- Uruchom ten kod i twoja tabela będzie posortowane według kolorów .
Read More: Jak sortować według koloru w Excelu (4 kryteria)
4. zastosować VBA do sortowania tabeli Excela według ikony
Załóżmy, że tabela zbioru danych ma ikony dla lepszej czytelności. Możesz posortować tabela oparta na ikonach w Excelu z VBA makro.
Spójrz na powyższy zbiór danych. Tutaj tabela ma ikony obok wartości liczbowych w Marks kolumny, dzięki czemu możemy zrozumieć, który student ma dobre, złe lub średnie wyniki.
Zauważ, że jeśli nie wiesz jak wstawić ikonę wewnątrz komórki, możesz to zrobić po prostu za pomocą Formatowanie warunkowe funkcja w programie Excel.
- Wybierz cały zakres lub kolumnę.
- Idź do Formatowanie warunkowe -> Zestawy ikon Następnie wybierz dowolny zestaw ikon, który chcesz z opcji.
Kroki do posortować tabelę na podstawie ikon podano poniżej.
Kroki:
- Otwórz Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- W oknie kodu skopiuj poniższy kod i wklej go.
Sub SortTableIcon() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("IconTable") Set iColumn = Range("IconTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(1) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(2) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(3) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(4) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(5) .Header = xlYes .Apply End With End Sub
Twój kod jest teraz gotowy do uruchomienia.
Tutaj,
- strzałki xl5 -> Wybraliśmy zestaw 5 strzałek z opcji w Formatowanie warunkowe .
- Pozycja (1) -> Określone. pierwszy typ ikony strzałki.
- Pozycja (2) -> Określone. druga typ ikony strzałki.
- Pozycja (3) -> Określone. trzeci typ ikony strzałki.
- Pozycja (4) -> Określone. czwarty typ ikony strzałki.
- Pozycja (5) -> Określone. piąty typ ikony strzałki.
- Uruchom ten kod i tabela będzie posortowane na podstawie ikon .
Read More: Jak automatycznie sortować tabelę w programie Excel (5 metod)
Wniosek
Ten artykuł pokazał, jak posortować tabelę w Excelu VBA Mam nadzieję, że ten artykuł był dla Ciebie bardzo korzystny. Czuj się swobodnie, jeśli masz jakieś pytania dotyczące tematu.