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.

ArrowSortingOrder

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.

ArrowRawData

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

ArrowInsertingCombobox

auf das Kombinationsfeldsymbol . Klicken Sie mit der rechten Maustaste auf das Kombinationsfeld und klicken Sie auf Formatsteuerung.

ArrowFormattingControl

  1. Gehen Sie zur Registerkarte Steuerung, weisen Sie das Element zu und verknüpfen Sie das Kombinationsfeld mit der Zelle XFC1.

ArrowCellLink

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

ArrowAscendingOrder

Arbeitsblätter in absteigender Reihenfolge sortiert

ArrowDescendingOrder

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

ArrowAscendingCompleteSort

Arbeitsblätter in aufsteigender Reihenfolge sortiert DecendingSortOfWorksheets-Makro

ArrowDescendingCompleteSort

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]