Eröffnung Semikolon getrennte CSV-Datei
Wie macht man öffnen Sie eine Semikolon-getrennte CSV-Datei mit VBA in Excel 2000?
Sample-Daten
An ID;TEST20090222
A Name;Firstname Surname
A Date;11.05.2000
Country:;SomeCountryName
Currency;EUR
CostA;
CostB;
CostC;
Part1;10;20;30
Part2;;;;
Part3;34;56;87
Code
In Excel 2003 11.8231.8221 SP3 mit VBA 6.5.1025, ich kann öffnen Sie eine Semikolon-getrennte Datei mit den folgenden VBA-code:
Workbooks.OpenText filename:=myFilename, _
DataType:=xlDelimited, Semicolon:=True, Local:=True
Jedoch, wenn der gleiche code in Excel 2000 9.0.8961 SP1 mit VBA 6.5.1025, bekomme ich die folgende Fehlermeldung:
Fehlers kompilieren: Benanntes argument nicht gefunden
Ist --denke ich-- weil Excel 2000 kennt es nicht, das benannte argument "Local".
Deshalb habe ich gelöscht, das "Local:=True" - Teil. Aber das problem ist dann, dass eine gesamte Zeile aus der CSV-Datei geschrieben ist, in einer Zelle statt, aufgeteilt in die separate Semikolon getrennte Teile.
Habe ich im Internet gesucht nach einer Lösung aber nicht finden, alles, was nützlich und übersichtlich.
Irgendwelche Ideen?
[Update 17.02.2009]
Habe ich versucht den Vorschlag von Benutzer-lc mit dem makro-recorder. Aber die Ergebnisse waren verwirrend.
Wenn ich öffnen Sie die CSV-Datei mit dem Menü Datei->Öffnen mit... und wählen Sie dann die CSV-Datei, Semikolon-getrennte Daten korrekt geparst wurden. Und der aufgezeichnete code ist so einfach wie:
Workbooks.Open filename:= _
"D:\testdata\Example 01 CSV\input.csv"
Aber wenn ich, dass VBA-code in meinem makro jede Zeile landet in einer Zelle wieder.
Nach dem Vorschlag von Benutzer barrowc, ich habe auch die Windows - "regions-und Sprachoptionen" Einstellungen, die von "Deutsch (Schweiz)" auf "English (United States)". Auch nach einem Neustart von Excel hat sich nichts geändert, dasselbe problem.
Ich Frage mich, warum es funktioniert auf Benutzer Remou's system. Was die regions-und Spracheinstellungen Sie haben?
Fügen Sie Ihre Informationen zu der Frage, bitte, nicht hier unten in die Kommentare.
Getan.
InformationsquelleAutor Lernkurve | 2009-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
[Update 22.02.2009]
In der Zwischenzeit habe ich das problem gelöst, indem er eine import-Funktion selbst anstelle der Verwendung von Arbeitsmappen.OpenText.
Ich Sie einfach öffnen Sie die CSV-Datei als text-Datei Lesen, Zeile für Zeile, split jede Zeile in der Semikolon-separierten Elemente und schreiben Sie jedes element in eine Zelle.
Bekam die inspiration von Shasur: http://vbadud.blogspot.com/2007/06/vba-read-text-files-with-leading.html
Weiß ich immer noch nicht, warum
Workbooks.OpenText
funktioniert nicht auf meinem system, obwohl es scheint zu funktionieren auf Benutzer Remou's system. Ich denke, es könnte etwas zu tun mit der Betriebssystem-Sprache (Englisch) und die regions-und Spracheinstellungen (Deutsch, Schweiz), aber ich bin mir nicht sicher.Sowieso, der workaround funktioniert bei mir. Danke Euch allen für die Vorschläge und Hilfe!!!
InformationsquelleAutor Lernkurve
Nicht sicher, aber können Sie versuchen, ein makro aufzeichnen, das gleiche zu tun und überprüfen Sie den VBA-code, den es produziert. Erhalten Sie möglicherweise einen Hinweis gibt, was fehlt.
InformationsquelleAutor lc.
Ich finde, dass dies für mich funktioniert in Excel 2000:
InformationsquelleAutor Fionnuala
Hier ist die
OpenText
- Methode von Excel 2000:und hier ist die Excel 2003 version:
so
Local
war in der Tat ein neuer parameter für Excel 2003 funktioniert nicht in Excel 2000Keine Ahnung, wie die Ursache für das fehlerhafte Verhalten. Die
Local
parameter ist definiert als:Möchten Sie vielleicht überprüfen Sie die regionalen Einstellungen auf die Excel 2000-PC und überprüfen, um zu sehen, ob es etwas gibt, was kann die Ursache sein, die Daten falsch interpretiert. Versuchen Sie auch, die explizite Angabe der
DecimalSeparator
undThousandsSeparator
Parameter auf die Excel 2000-Methode und sehen, ob das hilftInformationsquelleAutor barrowc
Noch eine workaround - einfach umbenennen .csv-Dateien .txt und verwenden OpenText-Methode.
InformationsquelleAutor tiggogo
Ich bevorzuge:
InformationsquelleAutor Makah
oft das Komma markiert, um wahr, wie ein separator, wo es in der Regel dem Dezimaltrennzeichen. Hinzufügen DecimalSeparator:="," und Bob ist dein Onkel
InformationsquelleAutor JohnnyDutch
Wieder Irgendwelche Ideen?
Wenn Sie möchten, fix eine Datei für andere mit excel-add diese in der ersten Zeile der Datei, ohne die Anführungszeichen, gefolgt von einem Zeilenumbruch: "sep=;"
Einfache Weise manuell öffnen, dumm, Dateien umbenennen, die Erweiterung .txt-oder .htm dann aus excel mit Datei - Öffnen.
In VBA empfehle ich einen Blick in die Methode in der MSDN und der manuellen Eingabe jedes Parameters, meine Erfahrung war, dass dies eliminiert die meisten regionalen Themen.
InformationsquelleAutor Jason K.