Makra Excela mogą nie być tak wszechstronne, jak inne narzędzia do automatyzacji, ale nie można podważyć ważności i wydajności Excel VBA. Jeśli pracujesz w programie Excel i innych narzędziach pakietu Microsoft Office, takich jak Word i Access, nie możesz się pomylić z VBA i jego możliwościami.

MS Excel to potężne narzędzie, które oferuje użytkownikom mnóstwo opcji. Od przechowywania danych po tworzenie automatycznych pulpitów nawigacyjnych, możesz to wszystko zrobić w programie Excel i jego arkuszach kalkulacyjnych.

Jeśli chcesz użyć VBA do zautomatyzowania zadań związanych z sortowaniem w programie Excel, wypróbuj te wydajne, łatwe do zastosowania makra.

Pobierz fikcyjny zbiór danych

Na początek możesz pobrać fikcyjny zestaw danych, aby pracować nad swoimi umiejętnościami makr w programie Excel.

Zapewniamy, że gdy już opanujesz te makra i lepiej zrozumiesz, jak to działa, możesz zmienić kod, aby pasował do własnych arkuszy kalkulacyjnych do pracy lub szkoły.

Możesz pobrać zestaw danych użyty w tym artykule, jeśli chcesz kontynuować.

instagram viewer

Ściągnij: Zestaw danych Excel

1. Sortowanie jednej kolumny za pomocą makr Excel

Użyj tego prostego kodu, aby posortować kolumnę danych w arkuszu kalkulacyjnym Excel. Jeśli pobrałeś fikcyjny zbiór danych, możesz spróbować posortować kolumnę E (jednostki sprzedane).

Otwórz nowy plik Excela i zapisz go za pomocą Skoroszyt programu Excel z obsługą makr (.xlsm) typ skoroszytu. Ten plik będzie przechowywać makro do sortowania danych z innego pliku.

Związane z: Najlepsze kursy online do opanowania zaawansowanego programu Excel

Będziesz kontrolować swój plik (pliki) z pliku makra, który będzie działał oddzielnie z twoimi skoroszytami.

Wpisz następujący kod:

Sub sortwithheaders()
Skoroszyty("Przykład finansowy.xlsx").Arkusze (1).Aktywuj
Zakres("A1:P701").sort Key1:=Range("e1"), Order1:=xlRosnąco, Nagłówek:=xlTak
Napis końcowy

Gdzie:

  • Klucz 1: Zdefiniuj kolumnę (kolumny), które chcesz posortować
  • Zamówienie1: Sposób zamawiania (rosnąco/malejąco)
  • Nagłówek: Jeśli treść ma nagłówki, ta opcja pozostanie jako xlTak. Alternatywnie wybierz xlNie.

Zakres będzie składał się z komórki początkowej i adresu komórki końcowej, dzięki czemu wszystko zostanie przechwycone do celów sortowania. W rezultacie cały zestaw danych zostanie posortowany na podstawie danych w kolumnie E.

2. Sortowanie danych dynamicznych w jednej kolumnie

Mogą istnieć przypadki, w których punkt początkowy jest zdefiniowany, ale punkt końcowy jest dynamiczny. W takim przypadku możesz uczynić swój kod dynamicznym, aby automatycznie pobierał koniec zakresu.

Aby dostosować się do zmiany danych, użyj poniższego kodu:

Sub sortwithheaders()
Skoroszyty("Przykład finansowy.xlsx").Arkusze (1).Aktywuj
Range("A1", Range("A1").End (xlDown)).sort Key1:=Range("e2"), Order1:=xlRosnąco, Header:=xlYes
Napis końcowy

Gdzie:

  • Koniec (xlDół): Ta funkcja automatycznie wybierze ostatnią wypełnioną komórkę

Notatka: Jeśli formuła napotka pustą komórkę w kolumnie, potraktuje poprzednią komórkę jako koniec zakresu.

Związane z: Jak tworzyć niestandardowe skróty klawiaturowe w programie Microsoft Excel

3. Sortowanie wielu kolumn razem

Mogą wystąpić sytuacje, w których chcesz posortować dane w wielu kolumnach za jednym razem. Aby to zrobić, możesz użyć następującego kodu, aby osiągnąć swój cel:

Podrzędne sortowanieWielekolumn()
Z Arkuszami("Arkusz1")
Z .Cells (1, "A").CurrentRegion
.Cells.sort Key1:=.Range("B1"), Order1:=xlRosnąco, _
Key2:=.Range("E1"), Order2:=xlRosnąco, _
Orientacja:=xlGóraDo dołu, Nagłówek:=xlTak
Kończyć z
Kończyć z
Napis końcowy

4. Sortowanie kolumn w wielu arkuszach

Kiedy masz do czynienia z wieloma arkuszami, możesz chcieć przygotować swoje dane do umieszczenia na pulpicie nawigacyjnym. Jednym z najważniejszych aspektów przygotowania danych jest ich sortowanie i uporządkowanie danych w określonym formacie, aby zaprezentować je interesariuszom lub klientom.

Jedną z opcji jest ręczne przechodzenie przez każdy arkusz, sortowanie wymaganych kolumn, a następnie przejście do następnego kroku. Alternatywnie, dlaczego nie pozwolić VBA zrobić to za Ciebie?

Celem poniższego kodu jest przechodzenie przez każdy dostępny arkusz w skoroszycie i sortowanie dostępnych danych na podstawie określonych kolumn.

Związane z: Funkcje wyszukiwania programu Microsoft Excel do wydajniejszego wyszukiwania arkuszy kalkulacyjnych

Oto jak możesz sortować kolumny w wielu arkuszach:

Sub SortujWS()
Dim ws As Worksheet
„Aktywuj zamierzony arkusz”
Skoroszyty("Przykład finansowy.xlsx").Aktywuj
'Automatycznie przełączaj się między poszczególnymi arkuszami roboczymi, używając pętli for
Dla każdego ws w ActiveWorkbook. Pościel
'aktywuj każdy arkusz z osobna'
ws. Aktywuj
'Zdefiniuj zakres, a następnie posortuj kolumnę na podstawie swoich wymagań. W tym przypadku sortowana jest tylko jedna kolumna.
Range("A1", Range("p1").End (xlDown)).sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlYes
'Polecenie używane do przejścia do następnego arkusza roboczego po posortowaniu poprzedniego arkusza roboczego
Następny ws
Napis końcowy

Wszystkie informacje zaczynające się od pojedynczych cudzysłowów są komentarzami VBA. Nie są one wykonywane na etapie realizacji. Jednak każdy dodany komentarz VBA jest znaczącym dodatkiem do kodu, ponieważ możesz zdefiniować istotę, funkcjonalność i inne istotne części w sekcjach kodu.

5. Kopiowanie posortowanych danych z jednego arkusza do drugiego

Wyobraź sobie sytuację, w której chcesz posortować dane i skopiować cały zestaw danych (lub jego części) do nowo dodanego arkusza. W takich przypadkach możesz użyć poniższego kodu do wykonania zadania:

Sub SortujWS()
Dim ws As Worksheet
„Aktywuj zamierzony arkusz”
Skoroszyty("Przykład finansowy.xlsx").Aktywuj
'Automatycznie przełączaj się między poszczególnymi arkuszami roboczymi, używając pętli for
Dla każdego ws w ActiveWorkbook. Pościel
'aktywuj każdy arkusz z osobna'
ws. Aktywuj
'Zdefiniuj zakres, a następnie posortuj kolumnę na podstawie swoich wymagań.
„W tym przypadku sortowana jest tylko jedna kolumna.
Range("A1", Range("p1").End (xlDown)).sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlYes
'Polecenie używane do przejścia do następnego arkusza roboczego po posortowaniu poprzedniego arkusza roboczego
Następny ws
'Utwórz nowy arkusz w skoroszycie, aby przechowywać nowe dane
Aktywny Skoroszyt. Pościel. Dodać. Nazwa = "Wyniki"
'Skopiuj i wklej posortowane dane do nowo dodanego arkusza
Sheets("Sheet1").Range("A1:p701").Copy Destination:=Sheets("Results").Range("a1")
Napis końcowy

Powyższy kod posortuje wartości w kolumnie E, doda nowy arkusz Wyniki do istniejącego skoroszytu i wklej posortowane wyniki w komórce A1.

Tworzenie makr sortowania w programie Excel

Excel VBA to sprytny język, który może zaoszczędzić dużo czasu i wysiłku. Używając makr VBA, możesz tworzyć rozbudowane pulpity nawigacyjne, łatwo sortować dane za pomocą kilku kliknięć i z łatwością wykonywać różne funkcje.

Na szczęście funkcjonalność Excela nie kończy się na makrach. Zapoznaj się z kilkoma wskazówkami i poradami, aby stać się bardziej wydajnym użytkownikiem programu Excel.

9 najlepszych stron internetowych i blogów do nauki porad i wskazówek dotyczących programu Excel

Niezależnie od tego, czy jesteś mistrzem w programie Excel, czy dopiero zaczynasz, oto dziewięć najlepszych witryn internetowych i blogów, z których możesz korzystać, aby poznać wskazówki i porady.

Czytaj dalej

UdziałĆwierkaćE-mail
Powiązane tematy
  • Programowanie
  • Microsoft Excel
  • Makra
O autorze
Gaurav Siyal (8 opublikowanych artykułów)

Gaurav Siyal ma dwuletnie doświadczenie w pisaniu dla szeregu firm zajmujących się marketingiem cyfrowym i dokumentach dotyczących cyklu życia oprogramowania.

Więcej od Gaurava Siyala

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować