Entfernen von doppelten Array Zeilen in Excel VBA
Entfernen von Duplikaten aus einem Array mithilfe von Visual Basic für Applikationen (VBA) in Excel kann verwirrend sein, wenn Sie kein erfahrener VBA-Programmierer sind. Sortieren und Entfernen von doppelten Daten aus einem Array ist ein iterativer Prozess, der erfordert eines relativ hoch entwickelten Algorithmus, aber kann leicht erreicht werden, indem ein paar einfache Schritte. In VBA können Sie eine "für... Loop"und"Collection"-Objekt zu verfolgen eindeutige Elemente in das Array und der Prozess ist ziemlich schnell, abhängig von der Größe des Arrays.
Anweisungen
1 Klicken Sie auf die Registerkarte "Entwicklertools" und klicken Sie auf "Visual Basic", das VB-Editor-Fenster zu starten. Legen Sie ein neues Codemodul, indem Sie auf das Menü "Einfügen" und "Module".
2 Erstellen Sie eine neue Sub-Prozedur und definieren Sie drei Variablen, die Sie verwenden werden, um Duplikate im Array zu entfernen.
Private Sub removeDuplicates()
Dim strArray(5) As String
Dim myCol As Collection
Dim idx As Long
Set myCol = New Collection
3
Ihr Array doppelte Daten hinzufügen.
strArray(0) = "bbb"
strArray(1) = "bbb"
strArray(2) = "ccc"
strArray(3) = "ddd"
strArray(4) = "ddd"
4
Kopieren und fügen Sie den folgenden Code zum Erstellen einer "für... Loop"und Schleife durch die einzelnen Elemente des Arrays um Duplikate zu entfernen:
On Error Resume Next
For idx = LBound(strArray) To UBound(strArray)
myCol.Add 0, CStr(strArray(idx))
If Err Then
strArray(idx) = Empty
dups = dups + 1
Err.Clear
ElseIf dups Then
strArray(idx - dups) = strArray(idx)
strArray(idx) = Empty
End If
Next
5
Drucken Sie jedes Element im Array in das Direktfenster zu zeigen, dass Duplikate entfernt wurden.
For idx = LBound(strArray) To UBound(strArray)
Debug.Print strArray(idx)
Next
6
Geben Sie "End Sub", Ihr Verfahren zu beenden. Klicken Sie im Menü "Ausführen" und klicken Sie auf die Wiedergabeschaltfläche, um das Programm auszuführen.