Prezados, uma boa tarde.
Tenho uma rotina, inclusive adaptada de exemplo colhido neste fórum, que utilizo para importar dados de um arquivo texto, extensão ".CSV". Abaixo segue o código VBA. Estava funcionando bem, contudo surgiu um problema: a base de dados que estou importando, vez uma vez outra, aparece um caractere especial que "confunde" a rotina, gerando um erro "Subscrito fora do Intervalo".
Analisando a linha na qual surge o erro, verifiquei o caractere especial, que, ao passar o ponteiro do "mouse" sobre o mesmo apresenta a expressão SUB (^Z = 26 = 0x1a), conforme imagem anexada. Ou seja, a rotina quebra a linha até este caractere especial não lendo os demais dados, o que ocasiona o erro "subscrito fora do intervalo".
Se possível, me deem uma ideia para tratar este problema.
Agradecido antecipadamente pela atenção dispensada.
Código VBA utilizado para fazer a importação dos dados.
Tenho uma rotina, inclusive adaptada de exemplo colhido neste fórum, que utilizo para importar dados de um arquivo texto, extensão ".CSV". Abaixo segue o código VBA. Estava funcionando bem, contudo surgiu um problema: a base de dados que estou importando, vez uma vez outra, aparece um caractere especial que "confunde" a rotina, gerando um erro "Subscrito fora do Intervalo".
Analisando a linha na qual surge o erro, verifiquei o caractere especial, que, ao passar o ponteiro do "mouse" sobre o mesmo apresenta a expressão SUB (^Z = 26 = 0x1a), conforme imagem anexada. Ou seja, a rotina quebra a linha até este caractere especial não lendo os demais dados, o que ocasiona o erro "subscrito fora do intervalo".
Se possível, me deem uma ideia para tratar este problema.
Agradecido antecipadamente pela atenção dispensada.
Código VBA utilizado para fazer a importação dos dados.
- Código:
Open CurrentProject.Path & "\Importacoes\SEF_ENTRADAS_DOC.csv" For Input As #1
Set Db = DBEngine.Workspaces(0).Databases(0)
Set rs = Db.OpenRecordset("SEF_ENTRADAS_DOC")
Line Input #1, linha
If Len(linha) > 0 Then
Do While Not EOF(1)
Line Input #1, linha
anArray = Split(linha, ";")
rs.AddNew
rs(0) = Trim(anArray(0))
rs(1) = Trim(anArray(1))
rs(2) = Trim(anArray(2))
rs(3) = Trim(anArray(3))
rs(4) = Trim(anArray(4))
rs(5) = Trim(anArray(5))
rs(6) = Trim(anArray(6))
rs(7) = Trim(anArray(7))
rs(8) = Trim(anArray(8))
rs(9) = Trim(anArray(9))
rs(10) = Trim(anArray(10))
rs(11) = Trim(anArray(11))
rs(12) = Trim(anArray(12))
rs(13) = Trim(anArray(13))
rs(14) = Trim(anArray(14))
rs(15) = Trim(anArray(15))
rs(16) = Trim(anArray(16))
rs(17) = Trim(anArray(17))
rs(18) = Trim(anArray(18))
rs(19) = Trim(anArray(19))
rs(20) = Trim(anArray(20))
rs(21) = Trim(anArray(21))
rs.Update
DblQtdRegistrosSEFDoc = DblQtdRegistrosSEFDoc + 1
Loop
- Anexos
- Imagem_dados.jpg
- Você não tem permissão para fazer download dos arquivos anexados.
- (83 Kb) Baixado 4 vez(es)