So sortieren Sie Arbeitsblätter in Excel mit VBA (alphabetisch)

Wenn Sie in Excel mit vielen Arbeitsblättern arbeiten, wissen Sie, dass deren Verwaltung zum Problem werden kann.

Sobald Sie mehr als ein paar Arbeitsblätter haben, müssen Sie diese manuell anordnen.

Wie einfach wäre es gewesen, die Arbeitsblätter in Excel schnell zu sortieren.

Obwohl es dafür keine eingebaute Funktion gibt, kann dies (einfach) mit VBA erfolgen.

In diesem Tutorial gebe ich Ihnen den Code und die genauen Schritte, die Sie zum Sortieren von Arbeitsblättern in Excel ausführen müssen.

Sie können den Code optimieren, um die Arbeitsblätter in aufsteigender oder absteigender Reihenfolge zu sortieren.

VBA-Code zum Sortieren von Arbeitsblättern in Excel

Unten ist der Code, der die Arbeitsblätter in alphabetischer Reihenfolge sortiert, sobald Sie ihn ausführen.

Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount If UCase(Sheets(j). Name) < UCase(Sheets(i).Name) Then Sheets(j).Move before:=Sheets(i) End If Next j Next i Application.ScreenUpdating = True End Sub

Das obige ist ein einfacher Code, der For Next-Schleifen verwendet, um jedes Arbeitsblatt mit allen Arbeitsblättern zu vergleichen.

Es vergleicht den Namen eines Arbeitsblatts mit allen Arbeitsblättern und verschiebt es basierend auf seinem Namen in alphabetischer Reihenfolge.

Es geht dann zum nächsten Arbeitsblatt über und vergleicht es dann mit allen Arbeitsblättern.

Dieser Vorgang wird für alle Arbeitsblätter wiederholt und das Endergebnis ist eine alphabetisch sortierte Reihenfolge der Arbeitsblätter.

Ein paar wichtige Dinge, die Sie über diesen Code wissen sollten:

  1. Die UCase-Funktion wird verwendet, um sicherzustellen, dass Klein- und Großbuchstaben nicht unterschiedlich behandelt werden.
  2. Der Wert von Application.ScreenUpdating wird am Anfang des Codes auf False festgelegt und am Ende des Codes in True geändert. Dadurch wird sichergestellt, dass der Code während der Ausführung nicht auf dem Bildschirm angezeigt wird. Dies hilft auch, die Codeausführung zu beschleunigen.

Wenn Sie Arbeitsblätter absteigend sortieren möchten, müssen Sie nur das (größer als)-Zeichen ändern.

Der folgende Code würde die Arbeitsblätter in absteigender Reihenfolge sortieren:

'Dieser Code sortiert die Arbeitsblätter alphabetisch Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount If UCase(Sheets(j).Name) > UCase(Sheets(i).Name) Then Sheets(j).Move before:=Sheets(i) End If Next j Next i Application.ScreenUpdating = True End Sub

Sie können dem Benutzer auch die Möglichkeit geben zu wählen, ob er aufsteigend/absteigend sortieren möchte.

Der folgende Code würde ein Meldungsfeld anzeigen und der Benutzer kann die zu sortierende Reihenfolge auswählen.

Sub SortWorksheetsTabs() Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer Dim SortOrder As VbMsgBoxResult SortOrder = MsgBox("Select Yes für aufsteigende Reihenfolge und No für absteigende Reihenfolge", vbYesNoCancel) ShCount For . = Sheets i = 1 To ShCount - 1 For j = i + 1 To ShCount If SortOrder = vbYes Then If UCase(Sheets(j).Name) UCase(Sheets(i).Name) Then Sheets(j).Move before:=Sheets (i) End If End If Next j Next i Application.ScreenUpdating = True End Sub

Der obige Code zeigt bei der Ausführung eine Meldung wie unten gezeigt an. Es sortiert basierend auf der Auswahl (Ja für aufsteigend und Nein für absteigend).

Wenn Sie auf Abbrechen klicken, stoppt der Code und nichts passiert.

Notiz: Die Sortierung kann nicht rückgängig gemacht werden. Falls Sie auch die ursprüngliche Reihenfolge beibehalten möchten, erstellen Sie eine Kopie der Arbeitsmappe.

Ein Wort der Warnung: Der obige Code funktioniert in den meisten Fällen. Ein Bereich, in dem Sie das falsche Ergebnis erhalten, ist, wenn Sie Registerkartennamen wie Q12021-2022, Q22021-2022, Q12021-2022, Q22021-2022 haben. Idealerweise möchten Sie, dass alle Registerkarten für dieselben Jahre zusammen sind, aber dies wird nicht getan, da Q12021-2022 vor Q22021-2022 platziert wird.

Wo soll der VBA-Code abgelegt werden?

Excel hat ein VBA-Backend namens VBA-Editor.

Sie müssen den VBA-Code kopieren und in das Codefenster des VB-Editor-Moduls einfügen.

Hier sind die Schritte, um dies zu tun:

  1. Klicken Sie auf die Registerkarte „Entwickler“. (Sie können den Entwickler-Tab nicht sehen? Klicken Sie hier, um zu erfahren, wie Sie ihn erhalten.)
  2. Klicken Sie auf die Visual Basic-Option. Dies öffnet den VB-Editor im Backend.
  3. Klicken Sie im Bereich Projekt-Explorer im VB-Editor mit der rechten Maustaste auf ein beliebiges Objekt für die Arbeitsmappe, in die Sie den Code einfügen möchten. (Wenn Sie den Projekt-Explorer nicht sehen, gehen Sie zur Registerkarte „Ansicht“ und klicken Sie auf „Projekt-Explorer“.)
  4. Gehen Sie zu Einfügen und klicken Sie auf Modul. Dadurch wird ein Modulobjekt für Ihre Arbeitsmappe eingefügt.
  5. Kopieren Sie den Code und fügen Sie ihn in das Modulfenster ein.

So führen Sie den VBA-Code aus

In Excel gibt es verschiedene Möglichkeiten, den VBA-Code auszuführen.

Sie können den Code direkt im Visual Basic-Editor (auch VB-Editor genannt) ausführen.

Sie können eine Schaltfläche oder ein Shape in das Arbeitsblatt einfügen und diesem das Makro zuweisen. Wenn Sie auf die Schaltfläche klicken, wird das Makro sofort ausgeführt.

Sie können das Makro auch der Symbolleiste für den Schnellzugriff (QAT) hinzufügen. Wenn Sie nun die Arbeitsblatt-Registerkarten sortieren müssen, können Sie einfach auf das Makrocode-Symbol in der QAT klicken.

Sie können hier alles über das Ausführen des Makros lesen – So führen Sie ein Makro in Excel aus (oder sehen Sie sich das Video unten an).
Die folgenden Excel/VBA-Tutorials könnten Ihnen auch gefallen:

  • So sortieren Sie Daten in Excel mit VBA.
  • Sortieren Sie Daten automatisch in alphabetischer Reihenfolge mithilfe von Formeln.
  • So führen Sie eine mehrstufige Datensortierung in Excel durch.
  • Eine Einführung in die Sortieroptionen für Excel-Daten.
  • Excel VBA Autofilter: Eine vollständige Anleitung mit Beispielen
  • So gruppieren Sie Arbeitsblätter in Excel
  • So spiegeln Sie Daten in Excel

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave