Hallo zusammen,
ich habe eine Csv-Datei mit dem Aufbau
Property Element Nominal Actual Dev
DLM P 1 10,138 10,076 -0,062
DLM P 2 10,103 9,853 -0,249
DLM P 3 10,075 9,908 -0,167
DLM P 4 10,005 9,847 -0,158
DLM P 5 9,919 9,914 -0,005
X P 1 58,950 58,950 -0,000
X P 2 72,830 72,830 -0,000
X P 3 92,828 92,828 -0,000
X P 4 112,827 112,827 -0,000
X P 5 132,825 132,824 -0,000
Diese Datei öffne ich und lese die Daten in ein Array, wobei jede Zeile mit Split in die einzelnen Spalten aufgetrennt wird. Das Ergebnis möchte ich anschließend per Schleife in einem Tabellenblatt speichern.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | Sub DataImport()
Dim iDatNum As Integer , Zeile As String , X As Integer
Dim AnzZeile As Integer , AnzSpalte As Integer , i As Integer , j As Integer
ReDim strLetters(1 To 1)
iDatNum = FreeFile
Open txtFileName For Input As iDatNum
Do While Not EOF(iDatNum)
X = X + 1
Line Input #iDatNum, Zeile
ReDim Preserve strLetters(1 To X)
strLetters(X) = Split(Zeile, vbTab)
Loop
Close iDatNum
MsgBox strLetters(2)(0)
AnzZeile = (UBound(strLetters(), 1))
AnzSpalte = UBound(strLetters(X))
For i = 1 To AnzZeile
For j = 0 To AnzSpalte
Sheets( "Help" ).Range( "A" & j + 1). = strLetters(i)(j)
Next j
Next i
End Sub
|
Lasse ich die Komponenten per Massagebox anzeigen (siehe etzte for-Schleife), werden alle Zahlen mit dem Komma an der richtigen Stelle ausgegeben. Schreibe ich die Daten dann in die Tabelle, wird das Komma plötzlich als Punkt interpretiert und aus 10,138 wird 10138,0000. Die einzige Möglichkeit die Werte korrekt zu importieren, habe ich über Pastespecial gefunden, wobei hier das Tabellenblatt aktiviert wird, bzw. die aktive Zelle immer mit markiert wird. Hat jemand also eine Idee, wie ich die Daten korrekt und im Hintergrund in mein Tabellenblatt schreiben kann?
Danke für eure Hilfe.
Grüße,
Anja
|