For Each Schleife zählt nicht hoch
09.03.2021 15:59:38
Jonas
seit einigen Tagen beschäftige ich mit VBA. Ich habe mir etwas Wissen angelesen und folgenden Code zusammengebastelt. Er soll aus verschiedenen log files eine bestimmte Zeile herauslesen und diese in einer Exceltabelle untereinander wiedergeben, sodass die Werte summiert werden können.
Folgendes Problem: Wenn ich das Programm auf meine 3 Test Files loslasse, wird drei Mal die Gesamtdauer von File 1 wiedergegeben. Die Schleife zählt irgendwie nicht hoch. Leider fehlt mir das Verständnis, um den Fehler selber zu finden. Vielleicht kann mir ja jemand von euch helfen. Besten Dank im voraus.
LG Jonas
Sub GesamtdauerMehrererLogs()
Dim fs As Object
Dim fVerz As Object
Dim fDatei As Variant
Dim fdateien As Object
Dim file As String
Dim textline As String
Dim text As String
Dim posDauer As Long
Dim i As Integer
i = 1
Set fs = CreateObject("scripting.FileSystemObject")
Set fVerz = fs.GetFolder("C:Test")
Set fdateien = fVerz.Files
For Each fDatei In fdateien
If Right(fDatei, 4) = ".log" Then
file = fDatei.path
Open file For Input As #1
Do Until EOF(1)
Line Input #1, textline
text = text & textline
Loop
Close #1
posDauer = InStr(text, "Gesamtdauer (hh:mm:ss):")
Range("A" & i).Value = Mid(text, posDauer + 24, 8)
i = i + 1
End If
Next fDatei
End Sub