online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon steindesign vom 23.07.2019, 10:49 Options

txt File einlesen (Feld für Feld) in Excel über VBA

Nun übe ich seit Tagen am selben Problem...
Möchte ganz einfach ein txt File ins Excel einlesen und zwar nicht Zeile für Zeile, sondern Wert für Wert und so ins Excel übernehmen, dass auch dort die Werte (Zahlen und Text) sauber pro Feld nur ein Wert eingetragen wird.

Hier die Struktur des txt Files:

SVID EQUNR CLASS
------- ------------ ----------

1035566 558899 Allgemein
1035568 558666 Allgemein
1035569 558833 Allgemein
1035570 558855 Allgemein

Das kann doch nicht so schwierig sein.... ??


Antwort schreiben

Antwort 1 von Teerbaby vom 23.07.2019, 11:10 Options

Benutze das input #-Statement


input #filenumber, variable, variable, ...

Antwort 2 von steindesign vom 23.07.2019, 11:14 Options

Hab ich eben schon und das Problem ist dass er mir immer die ganze Zeile ins Excel einliest und zwar ins erste Feld...

Habe auch den INPUT und den LINE INPUT Befehl probiert... ohne Erfolg...

Antwort 3 von fukko vom 23.07.2019, 11:22 Options

Zitat:
und zwar nicht Zeile für Zeile, sondern Wert für Wert

ist doch egal. lies zeilenweise in eine variable und splitte sie dann in werte. die split()-funktion kennt excel glaub ich seit version 2000.

Antwort 4 von steindesign vom 23.07.2019, 12:43 Options

Also konkret habe ich folgendes:

Public Sub Makro5()
Dim Text1 As String

zz = 20
Open "H:\Daten\Excel\SW-Release.txt" For Input As #1
Do While Not EOF(1)
Input #1, Text1

Range("A" & zz).Value = Text1

zz = zz + 1
Loop
Close #1
End Sub

Wie kann ich nun erreichen, dass ich ins nächste Feld im Excel (B 20 ) z.B. den zweiten Wert einlesen kann ??

Antwort 5 von fukko vom 23.07.2019, 12:56 Options

probier mal so:

Open "H:\Daten\Excel\SW-Release.txt" For Input As #1
n = 20
While Not EOF(1)
	Line Input #1, z
	a = Split(z, Space(1))
	For i = 0 To UBound(a)
		Cells(n, i + 1) = a(i)
	Next
	n = n + 1
Wend
Close #1

Antwort 6 von steindesign vom 23.07.2019, 13:28 Options

He fukko das funzt schon ziemlich prächtig !

Aber kannst Du mir die einzelnen Zeilen (a = split, und UBound ? und Cells ..)
doch noch ein bisschen näher erklären...

Dann hätte ich noch die Frage wie kann ich steuern, dass nicht nach einem "space" getrennt wird, sondern nach einem Tab ??

Danke vorerst mal tausendmal !!

Antwort 7 von fukko vom 23.07.2019, 13:51 Options

die funktion split() teilt einen string nach dem angegebenen trennzeichen und gibt das ergebnis als array zurück. im nullten feld des arrays steht die erste teilzeichenkette, die anderen kommen dahinter, jede in einem anderen arrayfeld. ubound() gibt die höchste indexzahl eines arrays zurück.
beispiel:
string="1|2|3"
a=split(string,"|")
ergebnis ist der array a mit folgendem inhalt:
a(0)="1"
a(1)="2"
a(2)="3"
ubound(a) gibt als ergebnis 2 zurück, das heisst, der array besitzt 3 felder (von feld0 bis feld2)

mit cells(zeile,spalte) kann man einzelne excelzellen auslesen oder füllen. zeile und spalte geben die gewünschte zelle an (wie in einem koordinatensystem). cells(1,1) steht für die linke obere zelle (=a1). b1 ist cells(1,2) und a2 ist cells(2,1).

für tab ersetze space(1) durch chr(9). tab ist das ascii-zeichen nummer 9.

Antwort 8 von steindesign vom 23.07.2019, 14:24 Options

Super, nun funktionnierts einwandfrei !!

Herzlichen Dank für die tolle Erklärung.

Schon wieder was gelernt...

Liebe Grüsse, Rolf

Ähnliche Themen

anzeigen von Verknüpfungen und Formeln
johannes78  25.09.2007 - 43 Hits - 1 Antwort

Excel daten in regelmäßigen abständen erfassen lassen
GuntramTreder  09.11.2007 - 117 Hits - 3 Antworten

rechne wenn
Ghira  26.01.2008 - 56 Hits - 1 Antwort

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:Thu Jan 8 21:07:44 2026