Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Auslesen von einer gegebenen Zeile in einer Datei

Auslesen von einer gegebenen Zeile in einer Datei
17.09.2018 12:08:16
einer
Guten Tag zusammen!
Ich habe eine VBA-basierte Aufgabe bekommen, bei der ich leider ein wenig auf dem Schlauch stehe. Und zwar geht es darum, eine von den Variablen x, y und z abhängige Funktion zu schreiben, die die in der Zeile 8+z der Datei "C:\Beispiel\" & x & "_" & y befindliche Zahl ausliest und als Wert zur Verarbeitung in Excel weitergibt.
Mein Problem ist hierbei, dass ich mir nicht sicher bin, wie ich eine bestimmte Zeile innerhalb einer Datei mit VBA eindeutig adressieren kann ohne die Datei vorher zu öffnen. Zur Information sollte ich vielleicht erwähnen, dass die fraglichen Dateien als Standard-Dateien gespeichert sind und von mir auch nicht in einen anderen Dateityp konvertiert werden können. Ich hatte zeitweilig darüber nachgedacht, die Datei über Shell mit den Texteditor zu öffnen, aber zum einen ist das für die Anwendung sicher keine sonderlich praktikable Lösung und zum anderen habe ich das Problem, dass ich dann eine Zahl erhalte, die mit Punkt als Dezimaltrennzeichen formatiert ist, ich für Excel aber das Komma benötige.
Über Hilfe würde ich mich freuen.
Gruß,
Marcel

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auslesen von einer gegebenen Zeile in einer Datei
17.09.2018 12:20:00
einer
Hola,
wie lautet der Text der Hausaufgabe im Original, Marcel ? :-)
Gruß Gerd
AW: Auslesen von einer gegebenen Zeile in einer Datei
17.09.2018 12:21:26
einer
Hallo
Ein kleines Codefragment

Sub DoParse()
Dim txt as String
Dim i as Long
i = 0
Open "C:\Test.TXT" for Input as #1
Do While Not EOF(1)
LineInput #1, txt
i = i + 1
If i = (Deine gewünschte Zeile) then exit Loop
Loop
Close #1
' hier kannst Du gewünschten Wert aus der Variable "txt" auslesen
End Sub

AW: Auslesen von einer gegebenen Zeile in einer Datei
17.09.2018 13:37:27
einer
Hallo Peter,
vielen Dank für die schnelle Hilfe! Wenn ich aus Exit Loop ein Exit Do mache, funktioniert das Skript schon sehr gut und bringt mich auf den richtigen Wert. Der einzige Punkt, der mir noch etwas Sorgen bereitet, ist allerdings, dass ich die Funktion potenziell mit verschiedenen Werten für z in mehreren tausend Formeln verwenden möchte und dies dann zu sehr langen Berechnungen führen könnte, wenn man mal x oder y abändert. Ist das hier unumgänglich oder gäbe es da vielleicht noch eine Möglichkeit, das Ganze etwas zu beschleunigen?
Eine genauere Beschreibung meiner Aufgabe kann ich leider nicht geben, da mir diese mündlich übergeben wurde und mehr oder weniger nur daraus bestand, dass ich für ein Excel-Blatt eine Funktion schreiben soll, die die Werte wie oben beschrieben liefert.
Anzeige
AW: Auslesen von einer gegebenen Zeile in einer Datei
17.09.2018 14:33:37
einer
Hallo Marcel,
man könnte es vielleicht etwas anders machen. Nachstehendes Makro öffnet die TXT-Datei (Test.txt) als Excel-Tabelle und liest anschließend den Inhalt in das Array arrDaten ein. Danach kann auf jede beliebige Zeile der TXT-Datei mit arrDaten(Zeilen-Nr, 1) zugegriffen werden ohne die TXT-Datei erneut öffnen zu müssen. Probiere es mal aus.
Sub Test()
Dim arrDaten
Workbooks.OpenText Filename:="D:\Test.txt" _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
arrDaten = ActiveSheet.UsedRange
ActiveWorkbook.Close
'ab hier Verarbeitung der Daten
'Zeile 10 erhält man z. B. mit: arrDaten(10, 1)
'Zeile 12 erhält man mit:       arrDaten(12, 1)
End Sub
Gruß
Robert
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige