Вы можете попробовать удалить пробелы и заменить их следующим образом:
Ln = US.ReadLine
Do While (InStr(Ln, " ") > 0)
Ln = Replace(Ln, " ", " ")
Loop
'The only problem I see is the case where you have Time (6:00 PM) this
' would replace the space with Tab. in that case, I would do the following:
Ln = Replace(Ln, " PM", "PM")
Ln = Replace(Ln, " AM", "AM")
Ln = Replace(Ln, " ", vbTab)
'And then put them back
Ln = Replace(Ln, "PM", " PM")
Ln = Replace(Ln, "AM", " AM")
'Finally, split the columns
Cols = Split(Ln, vbTab)
Если вы хотите попробовать с фиксированной шириной, сделайте следующее (после Ln = US.Readline):
'01/11/2019 06:00 PM USO-FOX-USO E10 8.9929 0.0000
'Do the following only if (InStr(Ln, " ") > 0)
strCol1 = Mid(Ln, 1, 21)
strCol2 = Mid(Ln, 22, 13)
strCol3 = Mid(Ln, 35, 13)
strCol4 = Mid(Ln, 48, 11)
strCol5 = Mid(Ln, 59, Len(Ln))