cancel
Showing results for 
Search instead for 
Did you mean: 

Import CSV object with Semicolon delimiter (MS Excel VBO) - Formatierung

PetraMueller
Level 2
Ich habe einen CodeStage, der eine csv Datei mit Separator Semikolon importiert. Dies funktioniert problemlos.
Jetzt ist es allerdings zwingend notwendig, dass einzelne Spalten als Text importiert werden müssen.
Daher habe ich folgende Zeile hinzugefügt

With sh.QueryTables.Add("TEXT;"+filePath, sh.Range("$A$1"))
     .Name = fileName
     .FieldNames = True
     ....
     .TextFileColumnDataTypes = Array(1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
     ....
End With

Ich bekomme folgende Fehlermeldung
Page: 06_Excel
Stage: Code1
Type: Error
Action: Validate
Description: Compiler error at line 38: "Array" ist ein Typ und kann nicht als Ausdruck verwendet werden.
Repairable: No

Alle mir bekannten Workarounds (in Excel)
- entsprechende Spalte vorab oder auch anschliessend als Text zu formatieren
- entsprechende Spalte als Sonderformat 0 zu formatieren (teilweise sind bis zu 50 Zahlen in der Spalte)
führen nicht zum gewünschten Ergebnis.

Hat da jemand einen Tipp, wie man das hinbekommt ?





2 REPLIES 2

GabrielaBaba
Staff
Staff
Hallo Petra,

statt ein CodeStage, würde Dir vorschlagen die Funktion "Get CSV As Collection" von Utility - Strings VBO zusammen mit einer von Dir definierten Collection zu verwenden. Dabei das besondere Feld als Typ Text definieren. Falls weitere Datenbearbeitung notwendig sei, Du kannst eventuell ein Loop benutzen, oder, in Fall von vielen Daten, die Datenbearbeitung / Formatierung bei jedem Case vornehmen.

Ich hoffe es hilft.

Gabriela Baba
Blue Prism Professional Services EMEA

PetraMueller
Level 2
Hallo Gabriela

vielen Dank für deine Antwort.
"Get CSV As Collection" kann ich leider nicht nutzen, da die Felder durch ein Semikolon (und nicht Komma) getrennt sind.
Da die Datei auch Betragsfelder enthält, hilft es auch nicht, das Komma vorab per Script durch ein Semikolon zu ersetzen.
Ich habe einen Workaround eingebaut, der zwar umständlich ist, aber funktioniert.
Die einzulesende Datei hat über 150 Spalten, ich lese diese als Textfile ein und extrahiere nur die betroffene Spalte in eine 1-spaltige Collection.
Damit überschreibe ich dann die entsprechende Excel Spalte, was auch funktioniert.
Ist natürlich nicht wirklich schnell.