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