Sortieren Sie die Arbeitsblätter in einer Arbeitsmappe mit VBA in Microsoft Excel
In diesem Artikel haben wir Details zum Sortieren der Arbeitsblätter in der Arbeitsmappe in aufsteigender oder absteigender Reihenfolge bereitgestellt, abhängig vom Namen des Arbeitsblatts.
In der angehängten Arbeitsmappe gibt es zwei Module: – Modul 1 enthält das Makro „SortWorksheets“, das der Schaltfläche „Submit“ auf dem Blatt „Macro“ zugewiesen ist.
Dieses Makro sortiert alle Arbeitsblätter mit Ausnahme des ersten Arbeitsblatts, das als „Makro“ bezeichnet wird.
Wenn der Benutzer auf die Schaltfläche „Senden“ klickt, werden alle Blätter nach dem Blatt „Makro“ in aufsteigender oder absteigender Reihenfolge sortiert, wie vom Benutzer im Kombinationsfeld ausgewählt.
Modul 2 enthält zwei Makros „AscendingSortOfWorksheets“ und „DecendingSortOfWorksheets“. Beim Ausführen des Makros „AscendingSortOfWorksheets“ werden alle in der Arbeitsmappe vorhandenen Arbeitsblätter in aufsteigender Reihenfolge sortiert. Beim Ausführen des Makros „DecendingSortOfWorksheets“ werden alle in der Arbeitsmappe vorhandenen Arbeitsblätter in absteigender Reihenfolge sortiert.
Logische Erklärung
Der Blasensortierungsalgorithmus wird zum Sortieren der Arbeitsblätter in der Arbeitsmappe verwendet.
Der Blasensortierungsalgorithmus vergleicht jedes Element im Array mit anderen Elementen im Array und tauscht sie aus, je nachdem, ob in aufsteigender oder absteigender Reihenfolge sortiert werden soll. In jedem Schritt wird der kleinste oder größte Wert an die Spitze des Arrays gesprudelt. Der Algorithmus wird wiederholt, bis alle Elemente sortiert sind.
In diesem Artikel ist es unser Ziel, die Arbeitsblätter in der Arbeitsmappe nach ihrem Namen zu sortieren. Die von uns verwendete Arbeitsmappe besteht aus verschiedenen Arbeitsblättern mit Namen wie Financial Dashboard, Human Resources und Sales Dashboard.
Um dieses Ziel zu erreichen, haben wir den Bubble-Sortieralgorithmus zum Sortieren der Arbeitsblätter verwendet.
Code Erklärung
SortWorksheets-Makro
Dieses Makro wird ausgeführt, wenn der Benutzer auf die Schaltfläche „Senden“ klickt. Dieses Makro sortiert alle Arbeitsblätter in der Arbeitsmappe nach ihren Namen mit Ausnahme des ersten Arbeitsblatts in der Arbeitsmappe. Abhängig vom vom Benutzer im Kombinationsfeld ausgewählten Wert werden die Arbeitsblätter in aufsteigender oder absteigender Reihenfolge sortiert.
Führen Sie die folgenden Schritte aus, um ein Kombinationsfeld hinzuzufügen: -. Gehen Sie zur Registerkarte Entwickler> Klicken Sie auf Einfügen> Klicken Sie unter Formularsteuerung
auf das Kombinationsfeldsymbol . Klicken Sie mit der rechten Maustaste auf das Kombinationsfeld und klicken Sie auf Formatsteuerung.
-
Gehen Sie zur Registerkarte Steuerung, weisen Sie das Element zu und verknüpfen Sie das Kombinationsfeld mit der Zelle XFC1.
ComboBoxValue = Bereich („XFC1“). Wert Das Kombinationsfeld im Arbeitsblatt „Makro“ ist mit der Zelle XFC1 verknüpft. Um den Wert aus der Zelle XFC1 abzurufen, wird die Variable ComboBoxValue verwendet.
Für i = 2 To SCount – 1 FOR-Schleife beginnt mit der Variablen i, Wert beginnend mit 2, da das erste Arbeitsblatt der Arbeitsmappe von der Sortierung ausgeschlossen werden soll.
Wenn ComboBoxValue = 1, wird die IF-Bedingung verwendet, um zu überprüfen, ob in aufsteigender oder absteigender Reihenfolge sortiert werden soll. Wenn der ComboBoxValue-Wert 1 ist, sortieren Sie in aufsteigender Reihenfolge, andernfalls in absteigender Reihenfolge.
Arbeitsblätter in aufsteigender Reihenfolge sortiert
Arbeitsblätter in absteigender Reihenfolge sortiert
AscendingSortOfWorksheets und DecendingSortOfWorksheets
Die Makros AscendingSortOfWorksheets und DecendingSortOfWorksheets können ausgeführt werden, indem Sie die Tastenkombination Alt + F8 drücken oder zur Registerkarte Entwickler gehen> Klicken Sie auf Makro> wählen Sie das Makro aus und klicken Sie auf Ausführen. Sie sortieren alle in der Arbeitsmappe enthaltenen Arbeitsblätter. Diese Makros können auch auf anderen Arbeitsmappen ausgeführt werden.
Arbeitsblätter sortiert nach dem Ausführen des Makros AscendingSortOfWorksheets
Arbeitsblätter in aufsteigender Reihenfolge sortiert DecendingSortOfWorksheets-Makro
Bitte folgen Sie unten für den Code
Sub AscendingSortOfWorksheets() 'Sort worksheets in a workbook in ascending order Dim SCount, i, j As Integer 'For disabling screen updates Application.ScreenUpdating = False 'Getting total no. of worsheets in workbook SCount = Worksheets.Count 'Checking condition whether count of worksheets is greater than 1, If count is one then exit the procedure If SCount = 1 Then Exit Sub 'Using Bubble sort as sorting algorithm 'Looping through all worksheets For i = 1 To SCount - 1 'Making comparison of selected sheet name with other sheets for moving selected sheet to appropriate position For j = i + 1 To SCount If Worksheets(j).Name < Worksheets(i).Name Then Worksheets(j).Move Before:=Worksheets(i) End If Next j Next i End Sub Sub DecendingSortOfWorksheets() 'Sort worksheets in a workbook in descending order Dim SCount, i, j As Integer 'For disabling screen updates Application.ScreenUpdating = False 'Getting total no. of worsheets in workbook SCount = Worksheets.Count 'Checking condition whether count of worksheets is greater than 1, If count is one then exit the procedure If SCount = 1 Then Exit Sub 'Using Bubble sort as sorting algorithm 'Looping through all worksheets For i = 1 To SCount - 1 'Making comparison of selected sheet name with other sheets for moving selected sheet to appropriate position For j = i + 1 To SCount If Worksheets(j).Name > Worksheets(i).Name Then Worksheets(j).Move Before:=Worksheets(i) End If Next j Next i End Sub
Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook und Facebook.
Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]