Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppelte Elemente in Array Löschen

Doppelte Elemente in Array Löschen
20.06.2006 15:24:08
Thorsten
Hallo,
ich hab mir mal eine Funktion geschrieben die doppelte Elemente in einem Array löscht. Leider funktioniert die noch nicht ohne Fehler zu Produzieren.

Function DelTwice(VarArray As Variant)
Dim i As Integer, j As Integer
If Not IsArray(VarArray) Then Exit Function
For i = 0 To UBound(VarArray) - 1
If VarArray(i) = VarArray(i + 1) Then
For j = i To UBound(VarArray) - 1
VarArray(j) = VarArray(j + 1)
Next j
ReDim Preserve VarArray(UBound(VarArray) - 1)
End If
Next i
End Function

Ich bekomme ein "Index ist außerhalb des gültigen Bereichs" Meldung für die Zeile:
VarArray(j) = VarArray(j + 1)
Aufgerufen hab ich die Funktion so:
Call DelTwice(aCKunde)
Gruß Thorsten

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Elemente in Array Löschen
20.06.2006 15:31:51
u_
Hallo,
i läuft durch bis zum urprünglichen Ende des Arrays-1. Demnach wird i irgendwann größer als die Länge des Arrays.
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
AW: Doppelte Elemente in Array Löschen
20.06.2006 15:37:39
Thorsten
Hallo u_,
das versteh ich grad irgendwie garnicht, kannst du mir noch etwas auf die sprünge helfen?
In welcher Zeile ist das denn definiert?
Gruß Thorsten
AW: Doppelte Elemente in Array Löschen
20.06.2006 15:43:58
Thorsten
Danke, jetzt hab ichs verstanden :)
Neuer Code:

Function DelTwice(VarArray As Variant)
Dim i As Integer, j As Integer, k As Integer, Bearbeitet As Boolean
If Not IsArray(VarArray) Then Exit Function
k = UBound(VarArray)
Do
Bearbeitet = False
For i = 0 To k - 1
If VarArray(i) = VarArray(i + 1) Then
For j = i To k - 1
VarArray(j) = VarArray(j + 1)
Next j
ReDim Preserve VarArray(UBound(VarArray) - 1)
k = k - 1
Bearbeitet = True
Exit For
End If
Next i
Loop While Bearbeitet
End Function

Anzeige

11 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige