online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Eleve vom 12.11.2021, 10:44 Options

Lösung

csv Datei direkt in array einlesen

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


Antwort schreiben

Antwort 1 von malSchauen vom 12.11.2021, 20:25 OptionsLösung

Lösung
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

Antwort 2 von Eleve vom 23.11.2021, 15:58 Options

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

Ähnliche Themen

CSV Datei in Excel
wagi  07.08.2008 - 53 Hits - 5 Antworten

csv-Datei öffnen, konvertieren per Dialog-Anzeige
ResiH  29.10.2008 - 13 Hits - 1 Antwort

@Coros Betr.:csv-Datei importieren
nok106  23.10.2008 - 10 Hits - 1 Antwort

Text-Datei in Excel einlesen
Tech07  22.03.2009 - 334 Hits - 6 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026