txt-File erzeugen, Code verbessern
05.02.2005 20:35:09
Christian
ich möchte beim Ablauf eines VBA-Programms bestimmte Daten (Datum, Uhrzeit, Fehlermeldungen, etc.) in eine Txt-Datei schreiben.
- wenn die Datei nicht existiert, soll sie erzeugt werden.
- in der ersten Zeile der Txt-Datei soll eine Spalten-Überschrift stehen.
- die eigentlichen Daten sollen jeweils angehängt werden (also bei jedem ausführen des Codes in einer neue Zeile geschrieben werden).
Im Archiv hab ich schon das ein und andere gefunden und daraus das folgende "zusammengebastelt". Das funktioniert auch soweit. Es kommt mir aber eben noch sehr umständlich vor, den Txt-File vier mal öffnen zu müssen. (siehe Code)
Meine Frage: kann mir jemand helfen, den Code zu optimieren?
vielen Dank für eure Unterstützung
Gruß
Christian
Option Explicit
Sub LogFile()
Dim strFile As String, strTxt As String
Dim strCaption As String, strTmp As String
Dim i As Byte
strCaption = "Col1;Col2;Col3" 'Bsp: Überschrift
strTxt = "Data1;Data2;Data3" 'Bsp: Daten
strFile = ThisWorkbook.Path & "\Test.log"
'wenn Datei nicht existiert, dann erzeugen und Überschrift einsetzen:
If Dir(strFile) = "" Then
Open strFile For Append As #1
Print #1, strCaption
Close #1
End If
'Wenn Datei existiert, aber keinen Eintrag hat, dann Überschrift einsetzen:
'auf Eintrag prüfen:
Open strFile For Input As #1
Do While Not EOF(1)
Input #1, strTmp
i = i + 1
If i = 2 Then Exit Do
Loop
Close #1
'Überschrift einsetzen:
If i = 0 Then
Open strFile For Append As #1
Print #1, strCaption
Close #1
End If
'strTxt anhängen:
Open strFile For Append As #1
Print #1, strTxt
Close #1
End Sub