Analysieren Tab-Getrennte Werte in VBA

Ich versuche zu nehmen Zwischenablage kopierten Daten aus excel (D. H. Tabulatoren getrennte Texte) und analysieren Sie diese in eine Sammlung von Wörterbüchern. Die Idee ist, dass jede Zeile wird durch ein Dictionary dargestellt, welche Karten aus Kopf-zu-Zelle-Werte. Die erste Zeile in der kopierten Daten enthalten die Kopfzeilen.

Immer den text aus der Zwischenablage ist einfach genug:

Dim dataObj As DataObject
Dim clipString As String
Set dataObj = New DataObject
dataObj.GetFromClipboard
clipString = dataObj.GetText

Dann aufgeteilt ich die Eingabe in Zeilen:

Dim strRows As Variant

strRows = Split(clipString, vbNewLine)

Nächsten versuche ich zu extrahieren der Header:

Dim headers As New Collection
Dim strCols As Variant
strCols = Split(strRows(0), vbTab)

For col = LBound(strCols) To UBound(strCols) - 1
    headers.Add strCols(col)
Next

Schließlich extrahiere ich die Zeilen:

Dim cells
Dim rows As New Collection

For i = 1 To UBound(strRows) - 1
    strCols = Split(strRows(0), vbTab)
    Set cells = CreateObject("Scripting.Dictionary")
    For col = 0 To UBound(strCols) - 1
        cells.Add headers.Item(col + 1), strCols(col)
    Next
    rows.Add cells
Next

Aber ich erhalte eine Fehlermeldung. Auf der Linie

headers.Add strCols(col), col

Zugriff kommt wieder mit der Run-time error '12': type mismatch.

Update problem behoben, durch das vor, danke für die Vorschläge. Jetzt bin ich immer einen Fehler auf der Linie

Set cells = CreateObject(Scripting.Dictionary)

424: Objekt erforderlich.

Irgendwelche Tipps, was ich bin diong falsch - VBA ist nicht wirklich meine Stärke.

Update 2 das Problem behoben (vielen Dank für die Anregung unten). Der code funktioniert jetzt.

InformationsquelleAutor |

Schreibe einen Kommentar