@rfs
Desenvolvi a rotina e testei naquele arquivo, aparentemente está rodando bem.
Deixei igual ao modelo de planilha que anexou, confirme se é isso mesmo.
Sub Importar()
Set arq = Application.FileDialog(1)
With arq
.Title = "Selecione o arquivo"
.Filters.Clear
.Filters.Add "Text Files", "*.txt"
End With
If arq.Show Then
MeuArq = arq.SelectedItems(1)
Else
MsgBox "Nenhum arquivo selecionado.", vbExclamation, "Aviso."
Exit Sub
End If
Set arq = Nothing
Call Abrir(MeuArq)
MsgBox "Importação Efetuada.", vbInformation, "Aviso."
End Sub
Sub Abrir(MeuArq)
Dim p As Worksheet
Set p = Sheets("Plan1")
p.Range("A3:L1048576").ClearContents
lin = 3
Open MeuArq For Input As #1
Do While Not EOF(1)
Line Input #1, linha
If Mid(linha, 15, 1) = "/" And Mid(linha, 18, 1) = "/" Then
p.Cells(lin, "A") = Mid(linha, 1, 6)
p.Cells(lin, "B") = Mid(linha, 9, 3)
p.Cells(lin, "C") = CDate(Mid(linha, 13, 8))
p.Cells(lin, "D") = Mid(linha, 22, 5)
p.Cells(lin, "E") = CDate(Mid(linha, 30, 8))
p.Cells(lin, "F") = Trim(Mid(linha, 40, 20))
p.Cells(lin, "G") = Trim(Mid(linha, 62, 15))
p.Cells(lin, "H") = Trim(Mid(linha, 79, 20))
lin = lin + 1
Line Input #1, linha
p.Cells(lin, "I") = Trim(Mid(linha, 100, 2))
lin = lin + 1
Do While Not IsNumeric(Trim(Mid(linha, 147, 7)))
DoEvents
Line Input #1, linha
Loop
Do While Trim(Mid(linha, 105, 9)) <> "T O T A L" And Trim(Mid(linha, 105, 9)) <> ""
p.Cells(lin, "J") = Trim(Mid(linha, 105, 40))
p.Cells(lin, "K") = Trim(Mid(linha, 143, 4))
p.Cells(lin, "L") = CCur(Mid(linha, 147, 7))
lin = lin + 1
Line Input #1, linha
Loop
Do While Trim(Mid(linha, 105, 9)) = ""
Line Input #1, linha
Loop
p.Cells(lin, "J") = Trim(Mid(linha, 105, 30))
p.Cells(lin, "K") = Trim(Mid(linha, 142, 4))
lin = lin + 1
End If
Loop
Close #1
End Sub
Postado : 07/10/2020 12:16 am