1.5k Aufrufe
Gefragt in Tabellenkalkulation von eleve Einsteiger_in (49 Punkte)
Hallo Leute,

ich habe eine csv Datei mit mehreren durch Semicolon getrennten Werten. Ich benötige aber lediglich die Werte aus "Spalte 9" um diese in Excel zu verarbeiten.

Kann man sich nur diese Spalte aus der csv-Datei rauspicken ohne über ein Hilfsblatt zu gehen?



Danke schon mal für Eure Zeit und Euer Hirnschmalz


Eleve

2 Antworten

0 Punkte
Beantwortet von
Hi,

Eine "Abbildung" der Spalte9 in einem Array würde bei mir aussehen wie folgt:
Sub CSV_ImportS9()
Dim intCount As Integer, intFile As Integer
Dim lngCount As Long, lngZeile As Long
Dim lngStartS As Long, lngStopS As Long
Dim strDatei As String
Dim varScratch As Variant, varPuffer() As Variant

strDatei = "C:\001_Test\Excel-Tests\Test.CSV"
intFile = FreeFile

Open strDatei For Input As #intFile 'Datei zum Auslesen öffnen
Do While Not EOF(intFile) 'Schleife bis EOF
lngZeile = lngZeile + 1 'Zeilen hochzählen
Line Input #intFile, varScratch 'Zeile auslesen
intCount = 0: lngStartS = 0: lngStopS = 0 'rücksetzen der Zähler auf 0
For lngCount = 1 To Len(varScratch) 'von Zeichen1 bis Ende Zeile
If Mid(varScratch, lngCount, 1) = ";" Then intCount = intCount + 1 'Trennzeichen zählen
If intCount = 8 And lngStartS = 0 Then lngStartS = lngCount + 1 'Pos. des 8ten Trenners +1 merken
If intCount = 9 Then lngStopS = lngCount: Exit For 'Pos. des 9ten Trenners merken
Next
ReDim Preserve varPuffer(1 To lngZeile) 'Array vergössern
If lngStartS And lngStopS Then 'wenn mehr als 9 "Spalten"
varPuffer(lngZeile) = Mid(varScratch, lngStartS, lngStopS - lngStartS)
ElseIf lngStartS Then 'wenn genau 9 "Spalten"
varPuffer(lngZeile) = Mid(varScratch, lngStartS)
End If
Loop
Close #intFile 'Datei Schliessen
Stop 'Stop zwecks ArrayKontrolle z.B. im Überwachungsfenster
End Sub


bye
malSchauen
0 Punkte
Beantwortet von eleve Einsteiger_in (49 Punkte)
Hallo malSchauen,

vielen Dank für Deine Hilfe. Aus welchem Grund auch immer meine csv ist durch
"," (Komma) getrennt und nicht durch
";" (Semikolon)


aber es läuft!

Schöne Grüße

Eleve
...