Sortierte sortierte Daten in Microsoft Excel VBA aufheben

Bilal Shahid 15 Februar 2024
  1. So entsortieren Sie sortierte Daten in VBA
  2. Methode 1: Behalten Sie eine temporäre Spalte mit zunehmenden numerischen Werten bei
  3. Methode 2: Verwenden Sie die MS Excel-Tools
  4. Methode 3: Erstellen Sie eine Sicherungskopie der Daten
  5. Abschluss
Sortierte sortierte Daten in Microsoft Excel VBA aufheben

VBA ist eine Programmiersprache für Microsoft-Excel-Anwendungen, die Benutzern verschiedene Funktionen und Features zur Verfügung stellt. In diesem Artikel erfahren Sie, wie Sie Daten in VBA unsortieren können.

So entsortieren Sie sortierte Daten in VBA

Das Sortieren ist eine sehr gängige Praxis bei der Arbeit mit MS Excel. Möglicherweise möchten Sie Daten in aufsteigender oder absteigender Reihenfolge sortieren, um den höchsten oder niedrigsten Wert zu ermitteln, die Daten zu organisieren usw.

Das Sortieren in Excel kann folgendermaßen erfolgen:

  1. Verwendung der Sortier- und Filteroptionen von MS Excel
  2. Verwenden der VBA-Methode Range.Sort

Man könnte diese Aktionen jedoch ausführen und später feststellen, dass die Daten in ihre ursprüngliche Form zurückversetzt werden müssen. Es gibt die standardmäßige Rückgängig-Option Strg+Z, aber es gibt Situationen, in denen dies nicht funktioniert.

Zum Beispiel:

  1. Wenn Sie die Excel-Datei gespeichert und erneut geöffnet haben.
  2. Wenn Sie einige zusätzliche Änderungen vorgenommen haben und diese nicht rückgängig machen möchten, sondern nur die Sortierung aufheben möchten.
  3. Wenn Sie die Sortierung mit dem VBA-Code durchgeführt haben.

Daher muss es eine geeignete Methode geben, um diese Einschränkung zu umgehen und zur ursprünglichen Datenorganisation in Ihrer Excel-Tabelle zurückzukehren. Sehen wir uns diese Methoden nacheinander an.

Methode 1: Behalten Sie eine temporäre Spalte mit zunehmenden numerischen Werten bei

Diese Methode ermöglicht es uns, Daten zu unsortieren, indem wir einen Verweis auf die ursprüngliche Reihenfolge der Daten beibehalten. Lassen Sie uns dies anhand eines Beispiels verstehen.

Angenommen, Sie haben die folgenden Daten in Ihrem Blatt:

Beispieldaten

Um die ursprüngliche Reihenfolge der Daten beizubehalten, können wir jetzt eine temporäre Spalte einfügen, die sie verfolgt. Das bedeutet, dass wir die Seriennummerwerte in einer Spalte speichern.

Dies kann durch Befolgen dieser zwei einfachen Schritte erfolgen:

  1. Füllen Sie in der ersten leeren Spalte die ersten beiden Zellen mit den Werten 1 und 2.

    Schritt 1

  2. Wählen Sie diese beiden Zellen aus und ziehen Sie sie von der unteren rechten Ecke nach unten, wo ein Pluszeichen angezeigt wird. Dadurch wird die gesamte Spalte mit aufsteigenden numerischen Werten gefüllt.

    Schritt 2

Alternativ können Sie diese temporäre Spalte erstellen, indem Sie den folgenden Code in VBA verwenden:

Sub CreateColumn()

For m = 2 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(m, "A").Value <> "" Then
Cells(m, "C").Value = m - 1
End If
Next m

End Sub

Hinweis: Sie müssen den Wert von m und die Spaltennamen entsprechend den Daten in Ihrem Blatt ändern.

Jetzt, da Sie die temporäre Spalte haben, können Sie die Daten beliebig sortieren, und Sie können sie immer wieder in diesen Zustand zurückversetzen. Lassen Sie uns beispielsweise das folgende Makro ausführen, um die Daten nach Gehalt zu sortieren:

Sub Sort()

Set sortRange = Range("A1:C6")
Set keyCell = Range("B1")
sortRange.Sort Key1:=keyCell, Order1:=xlAscending, Header:=xlYes

End Sub

Die Daten sind nun wie folgt sortiert:

Sortierte Daten

Wenn Sie die Daten unsortieren möchten, führen Sie einfach den Sortiercode erneut aus, aber dieses Mal behält Key1 als temporäre Spalte bei, sodass die Werte danach sortiert werden. Wir werden dies wie folgt tun:

Sub Sort()

Set sortRange = Range("A1:C6")
Set keyCell = Range("C1")
sortRange.Sort Key1:=keyCell, Order1:=xlAscending, Header:=xlYes

End Sub

Die Daten sind jetzt wie ursprünglich unsortiert.

Unsortierte Daten

Hinweis: Sie können im obigen Beispiel auch mit den MS Excel-Optionen Sortieren & Filtern im Menü Startseite anstelle des VBA-Codes sortieren.

Methode 2: Verwenden Sie die MS Excel-Tools

MS Excel bietet einige Sortier- und Filterwerkzeuge mit verschiedenen Optionen. Sie können angeben, nach welcher Spalte Sie sortieren möchten und in welcher Reihenfolge.

Wenn wir die Originaldaten beispielsweise nach Gehältern sortieren möchten, können wir bei der Sortieroption Benutzerdefinierte Sortierung Folgendes auswählen.

Benutzerdefinierte Sortierung

In den meisten Versionen von MS Excel gibt es eine Option, um die Sortierung und Filterung zu löschen. Die Option ist über STARTSEITE > BEARBEITEN > SORTIEREN & FILTERN > LÖSCHEN verfügbar.

Methode 3: Erstellen Sie eine Sicherungskopie der Daten

Eine Möglichkeit, Daten zu unsortieren, besteht darin, eine Sicherungskopie Ihrer Excel-Dateien aufzubewahren. Dies ist äußerst nützlich bei versehentlichem Missbrauch.

Wenn Sie die Sortierung aufheben möchten, können Sie auf die Sicherungsdatei verweisen und die dort gespeicherten Rohdaten in der ursprünglichen Reihenfolge verwenden. Hier sind einige Methoden zum Erstellen einer Sicherungsdatei:

  1. Kopieren Sie die Daten und fügen Sie sie in ein separates Blatt in der Arbeitsmappe ein.
  2. Erstellen Sie eine Kopie der gesamten Excel-Datei.
  3. Automatisieren Sie den Prozess der Erstellung eines Backups mit einem VBA-Zeitstempel-Makro, das jeden Tag zu einer bestimmten Zeit eine Kopie erstellt. Auf diese Weise müssen Sie nur gelegentlich manuell ein Backup erstellen.
  4. Erstellen Sie mit VBA eine Sicherungskopie am selben Ort wie die Originaldatei.
  5. Erstellen Sie mit VBA eine Sicherungskopie an einem anderen Ort. Das Speichern an einem anderen Ort hilft bei versehentlichem Löschen oder Löschen der Daten.

Hinweis: Sie können die Methoden Speichern und Speichern unter entsprechend verwenden, um eine Sicherungskopie mit VBA zu erstellen.

Abschluss

Dies fasst unsere Diskussion über verschiedene Methoden zum Unsortieren von Daten in VBA zusammen, einer nützlichen Programmiersprache, die Microsoft Office-Benutzern wertvolle Zeit spart. Die Methoden, die wir besprochen haben, sind:

  1. Beibehalten einer temporären Spalte mit inkrementierenden numerischen Werten
  2. Verwenden der MS Excel-Tools
  3. Erstellen einer Sicherungskopie der Daten
Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub