I have a folder with hundreds of text files that I need to parse some lines from. These lines then need to be pasted to an Excel sheet continuing down in order. This is my first attempt at VBA but I managed to pull the text I want from one file and paste it into the Excel sheet but I am stuck at being able to continuously run the macro through the entire folder and continuously add the parsed text lines to the Excel sheet. Sorry if this is rough but it is my first attempt at macro writing
I tried using Application.FileDialog(msoFileDialogFolderPicker) to call the folder that has all my text files in. I then opened the files I wanted with:
MyFile = Dir(MyFolder & "\", vbReadOnly)
I then tried a Do Loop to run the macro through each file but it didn't return any value despite completing the macro it just replaced the previously obtained results.
Here is the basic portion of my code:
Sub read()
'PURPOSE: Send All Data From Text File To A String Variable
    Dim TextFile As Integer
    Dim FilePath As String
    Dim FileContent As String
    Dim MyFolder As String, MyFile As String
    'Opens a file dialog box for user to select a folder
    With Application.FileDialog(msoFileDialogFolderPicker)
       .AllowMultiSelect = False
       .Show
       MyFolder = .SelectedItems(1)
       Err.Clear
    End With
    'File Path of Text File
    MyFile = Dir(MyFolder & "\", vbReadOnly)
    'Determine the next file number available for use by the FileOpen function
    TextFile = FreeFile
    'Open the text file
    Open MyFile For Input As #1
    'Store file content inside a variable
    Do Until EOF(1)
        Line Input #1, textline
        Text = Text & textline
    Loop
    Close #1
        
    Dim objFSO As Object
    Dim objFolder As Object
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.getFolder(MyFolder)
       
    Dim fls As Object
    Dim i As Integer
    i = 1
       
    For Each fls In objFolder.Files
    'find required data from txt file
        starttime = InStr(Text, "+start=")
        endtime = InStr(Text, "+end=")
        so = InStr(Text, "+so=")
        engineer = InStr(Text, "+engineer=")
        account = InStr(Text, "+account=")
        incident = InStr(Text, "+number=")
        machine = InStr(Text, "+machine=")
        down = InStr(Text, "+down=")
        nextrow = Cells(Rows.Count, "A").End(xlUp).Row + 1
        'label headers for txt data
        Range("A1").Value = "       start time   "
        Range("B1").Value = "       end time   "
        Range("C1").Value = "   SO   "
        Range("D1").Value = "       Total Time    "
        Range("E1").Value = "   Engineer       "
        Range("F1").Value = "   Account"
        Range("G1").Value = "   Incident"
        Range("H1").Value = "   Machine"
        Range("I1").Value = "   down"
        'paste obtained txt data into excel cells
        Range("A2" & i).Value = Mid(Text, starttime + 7, 16)
        Range("B2").Value = Mid(Text, endtime + 5, 16)
        Range("C2").Value = Mid(Text, so + 4, 8)
        Range("E2").Value = Mid(Text, engineer + 10, 4)
        Range("F2").Value = Mid(Text, account + 9, 6)
        Range("G2").Value = Mid(Text, incident + 8, 4)
        Range("H2").Value = Mid(Text, machine + 9, 4)
        Range("I2").Value = Mid(Text, down + 6, 9)
       'Report Out macro finished
        MsgBox "      Finished        "
        'Close Text File
         Close TextFile
          
        i = i + 1
    Next
    
End Sub
This gives me the results I want but I have to go through each individual file which is time consuming. I would rather have it loop though the entire folder pulling the information from each file and adding the pulled text to the Excel sheet continuing down each row. Any help would be greatly appreciated.
 
     
    