Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1324to1328
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
Inhaltsverzeichnis

Mehrfacheinträge aus Listen entfernen

Mehrfacheinträge aus Listen entfernen
14.08.2013 12:50:45
Gernot
Hallo Forumsmitglieder
Vor Jahren habe ich folgendes Makro von herber.de gefunden und mehrfach zum Listen bereinigen verwendet. Heute wollte ich eine Liste mit Zahlen damit bearbeiten, erhalte aber folgende Fehlermeldung:
Laufzeitfehler 9: Index außerhalb des gültigen Bereichs
Der Debugmodus zeigt auf diese Zeile: ReDim Preserve arrNew(1 To col.Count)
Weiß jemand, warum mit diesem Makrocode keine Zahlen bearbeitet werden können? Vielen Dank.
In einem Add-In-Modul habe ich folgenden herber.de-Code eingefügt:
Sub Onlys()
Dim arr() As Variant
Dim arrOnlys As Variant
Dim lRow As Long, liCount As Long, iCol As Integer
liCount = Selection.Cells.Count
If liCount = 1 Then
Beep
MsgBox "Sie müssen mindestens 2 Zellen auswählen!"
Exit Sub
End If
If Selection.Columns.Count > 1 Then
Beep
MsgBox "Sie dürfen nur Zellen einer Spalte markieren!"
Exit Sub
End If
iCol = Selection.Column + 1
ReDim arr(1 To liCount)
For lRow = 1 To liCount
arr(lRow) = Selection.Cells(lRow).Value
Next lRow
arrOnlys = GetOnlys(arr)
Columns(iCol).ClearContents
For lRow = 1 To UBound(arrOnlys)
Cells(lRow, iCol).Value = arrOnlys(lRow)
Next lRow
End Sub
Public Function GetOnlys(arr As Variant) As Variant
Dim col As New Collection
Dim arrNew()
Dim lRow As Long
On Error Resume Next
For lRow = LBound(arr) To UBound(arr)
col.Add Item:=arr(lRow), key:=arr(lRow)
Next lRow
On Error GoTo 0
ReDim Preserve arrNew(1 To col.Count)
For lRow = 1 To col.Count
arrNew(lRow) = col(lRow)
Next lRow
GetOnlys = arrNew
End Function

Vielen Dank im Voraus.
Gruß
Gernot

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrfacheinträge aus Listen entfernen
19.08.2013 00:06:43
fcs
Hallo Gernot,
Parameter Key einer Collection muss ein Text(String) sein. Deshalb müssen die Zahlenwerte in Text umgewandelt werden.
Mit folgender Anpassung funktioniert es.
   For lRow = LBound(arr) To UBound(arr)
col.Add Item:=arr(lRow), Key:=CStr(arr(lRow))
Next lRow

Diese Anpassung kannst du auch bei Textwerten anwenden, da diese 1 zu 1 umgewandelt werden.
Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige