Im Folgenden werden wir ein Programm in Excel VBA suchen, die Duplikate entfernt.

Situation:

In Spalte A gibt es 10 Zahlen. Wir wollen die Duplikate aus diesen Zahlen entfernen und die eindeutigen Zahlen in Spalte B platzieren

Remove Duplicates in Excel VBA

  1. Zuerst erklären wir vier Variablen. TOADD vom Typ Boolean, uniqueNumbers vom Typ Integer, i vom Typ Integer und j vom Typ Integer.

Dim toAdd As Boolean, uniqueNumbers As Integer, i As Integer, j As Integer
  1. Als nächstes schreiben wir die erste Nummer der Spalte A Spalte B, da die erste Zahl immer ‚einzigartig‘ ist.

Cells(1, 2).Value = Cells(1, 1).Value
  1. Wir initialisieren zwei Variablen. Wir haben nur eine Nummer zu Spalte B hinzugefügt, so dass wir uniqueNumbers mit dem Wert initialisieren 1. Wir TOADD auf True gesetzt unter der Annahme, dass die nächste Nummer Bedürfnisse als auch hinzugefügt werden (dies ist nicht unbedingt der Fall natürlich).

uniqueNumbers = 1

toAdd = True

Wir müssen feststellen, ob die zweite Zahl ist ‚einzigartig‘ ist oder nicht. Dies kann auf sehr einfache Art und Weise durchgeführt werden. Nur wenn die Nummer nicht bereits in Spalte B ist, muss die zweite Zahl auf Spalte B hinzugefügt werden

  1. Wir müssen auch diese, auf der vierten Reihe, und so für die dritte Zahl zu überprüfen. Wir starten eine For Next-Schleife für diese.

For i = 2 To 10
  1. Jetzt kommt der wichtigste Teil des Programms. Wenn die zweite Zahl auf eine der Zahlen in Spalte B gleich ist (bisher nur wir eine eindeutige Nummer haben), setzen wir TOADD auf False, weil in diesem Fall wollen wir nicht, diese Zahl addieren! (Es ist nicht ‚einzigartig‘). Im Moment uniqueNumbers ist immer noch gleich 1, aber uniqueNumbers kann eine ganze Liste sein. Um diese ganze Liste zu überprüfen, müssen wir eine andere For Next-Schleife. Nochmal: wenn die Zahl, die wir zu einem der Nummern in dieser Liste hinzufügen möchten gleich ist, wird TOADD auf False und die Zahl hinzugefügt wird nicht eingestellt werden. Fügen Sie die folgenden Codezeilen:

For j = 1 To uniqueNumbers

If Cells(i, 1).Value = Cells(j, 2).Value Then

toAdd = False

End If

Next j
  1. Nur wenn TOADD immer noch wahr ist und nicht auf False festgelegt, muss Excel VBA die Nummer der Spalte B Zur gleichen Zeit hinzuzufügen, wir uniqueNumbers um 1 erhöht, weil wir eine eindeutige Nummer mehr jetzt haben. Die folgenden Codezeilen den Job zu erledigen:

If toAdd = True Then

Cells(uniqueNumbers + 1, 2).Value = Cells(i, 1).Value

uniqueNumbers = uniqueNumbers + 1

End If
  1. Schließlich setzen wir TOADD auf True die nächste Nummer (dritte Reihe) unter der Annahme, hinzugefügt werden muss. Auch dies ist nicht unbedingt wahr.

toAdd = True
  1. Vergessen Sie nicht, um die Schleife zu schließen.

Next i
  1. Legen Sie das Makro in einer Befehlsschaltfläche und testen.

Ergebnis:

Remove Duplicates Result