Ich bin neu und ich habe versucht, Zelleninhalte in eine Spalte zu verschieben. Ich fand einen Code online und es funktionierte gut, aber wenn das Blatt mehr als 1000 Inhalte hat, bekommt es einen "Fehler 2029". Kann mir jemand helfen zu verstehen, warum das passiert?Verschieben Sie Zelleninhalte in eine Spalte
Der Code ist unten:
Sub MakeOneColumn()
Dim vaCells As Variant
Dim vOutput() As Variant
Dim i As Long, j As Long
Dim lRow As Long
If TypeName(Selection) = "Range" Then
If Selection.Count > 1 Then
If Selection.Count <= Selection.Parent.Rows.Count Then
vaCells = Selection.Value
ReDim vOutput(1 To UBound(vaCells, 1) * UBound(vaCells, 2), 1 To 1)
For j = LBound(vaCells, 2) To UBound(vaCells, 2)
For i = LBound(vaCells, 1) To UBound(vaCells, 1)
If Len(vaCells(i, j)) > 0 Then
lRow = lRow + 1
vOutput(lRow, 1) = vaCells(i, j)
End If
Next i
Next j
Selection.ClearContents
Selection.Cells(1).Resize(lRow).Value = vOutput
End If
End If
End If
End Sub
es in meiner Personal.xlsb-Datei gespeichert ist und über Makros ausgeführt wird. Als ich Zeile für Zeile in VBA-Projekt laufen, es gibt mir einen Fehler in
If Len(vaCells(i, j)) > 0 Then
Mismatch Fehler anzeigt.
Hier ist der Link der Testdatei.
https://drive.google.com/open?id=0BwfUfQfWNeG5VVpIOFItcmdCSWs
Gibt es irgendwelche Fehlerwerte in der ausgewählten Zellen? –
Wenn es Fehler, was ist der Wert an dieser Position auf dem Array "vaCells"? –
Ich kann den genauen Ort des Fehlers nicht genau bestimmen, da der Inhalt auf dem Blatt ziemlich viel ist. Aber auf dem Code selbst zeigt es vaCells (i, j) = Fehler 2029 – Marco