O delimitador é o ponto-e-vírgula.
Arquivo texto sem cabeçalho.
;-)
Sub importa_delimitado()
Dim entrada As String 'linha do txt
Dim i As Single 'número de caracteres
Dim linha As Integer
Dim coluna As Integer
Dim texto As String 'texto a ser gravado na célula
Dim ultimo As Boolean 'controle do último caracter da linha
Open "C:\Users\kazu\Desktop\pasta1.csv" For Input As #1
linha = 1
coluna = 1
Do While Not EOF(1)
Line Input #1, entrada
For i = 1 To Len(entrada)
If Mid(entrada, i, 1) = ";" Then
Cells(linha, coluna).Value = texto
coluna = coluna + 1
texto = ""
Else
'Se for o último caracter, grava na célula
If i = Len(entrada) Then
texto = texto & Mid(entrada, i, 1)
Cells(linha, coluna).Value = texto
coluna = coluna + 1
texto = ""
ultimo = True
End If
If Not ultimo Then texto = texto & Mid(entrada, i, 1)
End If
ultimo = False
Next
linha = linha + 1
coluna = 1
Loop
Close #1
End Sub

2 comentários:
Edmar, boa noite!
Não conheço o arquivo, você consegue enviar um exemplo?
Olhei no site do IBGE mas não achei...
Sou aprendiz de VBA, precisava de um código que conseguisse importar um arquivo texto delimitado, localizei este publicado no seu blog em 2010.
Percebi que o último registro não importou e não tenho conhecimento ainda para localizar o ajuste necessário, conseguiria me ajudar, por gentileza.
Parabéns pelo seu trabalho, tu é fera.
Postar um comentário