Página 1 de 1

FUNÇÃO Split(R, ",")

Enviado: 05 Out 2017 às 14:28
por MANUELARACATY
Boa tarde!
Estou trabalhando com importação de dados de arquivo .txt para o excel e no vba com a função Split.
Na verificação do arquivo .txt vi que tem mais de um delimitador, para alguns campos o delimitador é , (vírgula) para outros é " (aspas).
Como a função Split só recebe um argumento de delimitador que recurso posso usar quando tenho mais de um delimitador para tratar um Array?
Obrigado!

Re: FUNÇÃO Split(R, ",")

Enviado: 05 Out 2017 às 14:53
por babdallas
Como não vi o arquivo, uma sugestão seria vc usar o replace para substituir todas as aspas por vírgula e depois usar o split.
Se não servir, coloque um exemplo em anexo para que possa lhe ajudar.

Re: FUNÇÃO Split(R, ",")

Enviado: 05 Out 2017 às 14:58
por MANUELARACATY
É que no conteúdo do campo texto já tem vírgula então o arquivo .txt usa " (aspas) para separar o campo.

Re: FUNÇÃO Split(R, ",")

Enviado: 05 Out 2017 às 14:59
por babdallas
Anexa um pequeno exemplo, por favor.

FUNÇÃO Split(R, ",")

Enviado: 05 Out 2017 às 15:36
por MANUELARACATY
Segue arquivo.

Re: FUNÇÃO Split(R, ",")

Enviado: 05 Out 2017 às 23:04
por babdallas
Ainda não entendo muito de importação de texto, mas eu acessaria a linha do txt e percorreria toda ela com o seguinte algoritmo:
1) Acessa o arquivo txt
2) Faz um loop por cada caractere de cada linha do txt
3) Enquanto o caractere não for aspas duplas (equivalente ao chr(34)), concatenar os caracteres até encontrar uma vírgula. Quando encontrar a vírgula, coloca o texto concatenado em uma matriz e apaga a variável que tinha o texto concatenado
4) Quando encontrar uma aspas duplas, somente deixar de concatenar quando encontrar a próxima aspas duplas (neste caso a vírgula será considerada no texto concatenado).

Pensei bastante e ainda não consegui visualizar uma maneira de fazer pelo split, já que você tem uma vírgula no meio do texto entre aspas.

Uma outra maneira seria fazer usando o PowerQuery, que aliás deve ser bem mais fácil. Qual a versão do seu Excel?

Re: FUNÇÃO Split(R, ",")

Enviado: 05 Out 2017 às 23:18
por babdallas
Veja como eu fiz com o PowerQuery. Foi muito simples. Se tiver como instalar, avise-me que lhe ensino o passo a passo das etapas.

FUNÇÃO Split(R, ",")

Enviado: 06 Out 2017 às 08:05
por MANUELARACATY
Estou usando o EXCEL 2013 mas na empresa não podemos instalar suplementos, não tenho permissão de administrador, além do mais outros usuários tem somente o EXCEL 2003.
Assim fico restrito ao VBA.
De qualquer forma obrigado!