O Excel não respeita a configuração do delimitador para ler ou gravar arquivos CSV

20

Ao salvar / abrir arquivos CSV no Excel, o separador padrão é um ponto-e-vírgula (;), pois preciso que seja uma vírgula (,). Tentei alterá-lo alterando as configurações de Idioma e Regionais, seguindo várias outras postagens sobre esse problema ( ie como chegar Excel para interpretar a vírgula como um delimitador padrão em arquivos CSV? ).

No entanto, depois de alterar o separador Lista nessas configurações, meu Excel continua salvando arquivos CSV com um ponto e vírgula. É porque o Excel foi instalado enquanto meu separador de lista foi definido como ponto-e-vírgula? ou há outra configuração que estou faltando aqui?

Agradeço antecipadamente.

Sandra
fonte
O problema está na leitura de arquivos CSV existentes ou na criação de um usando vírgula como delimitador?
fixer1234
Ambos, eu já fiz o que o @Raystafarian mencionou antes de salvar um novo arquivo. Minha configuração regional está correta. Em seguida, abro o Excel e salvo como CSV e, quando abro o arquivo no bloco de notas, vejo que ele usou ponto e vírgula. Se eu abrir no Excel, ele carrega corretamente porque o Excel ainda usa a; para separar as colunas.
Sandra

Respostas:

35

Eu encontrei o problema Meu símbolo decimal nas configurações regionais também era uma vírgula (europeu), portanto, mesmo quando meu separador de lista era vírgula, o CSV era salvo com ponto e vírgula. Agora mudei meu símbolo decimal para um ponto e agora o arquivo CSV é criado corretamente com vírgulas como separadores. Testei isso duas vezes e agora sei que deve haver uma exceção: se o símbolo decimal for uma vírgula, o separador de lista será um ponto-e-vírgula e, mesmo assim, será definido.

Sandra
fonte
12
Obrigado por atualizar a postagem com uma resposta.
Gary Student
5

Para salvar

Você precisa ajustar o separador de lista nas configurações regionais e de idioma antes de salvar o arquivo -

insira a descrição da imagem aqui


Para abertura

Vá para Dados - Obter dados externos - Do texto

insira a descrição da imagem aqui

selecione o arquivo

Selecione delimitado , pressione próximo insira a descrição da imagem aqui

e selecione a vírgula delimitadora

insira a descrição da imagem aqui

Clique em terminar

insira a descrição da imagem aqui


Ou, puxe-o para dentro e use o texto nas colunas, veja aqui

Raystafarian
fonte
Se eu li a pergunta corretamente, parece que o problema está criando (salvando), um arquivo delimitado usando vírgulas para o delimitador (segundo parágrafo).
fixer1234
@ fixer1234 Sim, é assim que eu li no começo. Mas então eu pensei que o primeiro parágrafo era o mais importante. Não tenho ideia do que está correto. De qualquer maneira, não tenho outra solução para a criação além do que o OP mencionou que já tentou.
Raystafarian
Sim, alterei as configurações regionais antes de salvar o arquivo. Isso não ajudou. Quando recebo arquivos CSV de outras pessoas que são delimitadas por vírgula, utilizo seu método para importar os dados corretamente e, em seguida, salvo e ele passa a um ponto e vírgula. É irritante porque toda vez que preciso ir ao bloco de notas e substituir todos os pontos e vírgulas por vírgulas antes de usar meu CSV como um arquivo de importação.
Sandra
0

Aqui está uma macro muito boa que funciona muito bem:

Sub saveCSV()
File = Application.GetSaveAsFilename(InitialFileName:="file.csv", FileFilter:="CSV (*.csv), *.csv")
ActiveWorkbook.SaveAs Filename:=File, FileFormat:=xlCSV, CreateBackup:=False, local:=False
End Sub
yo_haha
fonte
0

Isso é um pouco antigo, mas tive o mesmo problema:
tinha um CSV delimitado com ponto e vírgula ( ;). As configurações do separador do sistema (Windows) também são definidas como ponto e vírgula.

  • Se eu abri o CSV manualmente, o arquivo foi separado corretamente.
  • Se eu deixar o VBA abri-lo, ele o separaria incorretamente com uma vírgula.

Usar Delimiter:=";"aparentemente só funciona com .txt.

No entanto, usando Local :=Trueresolveu o problema para mim:

Workbooks.Open(Filename:=fullpath, Local:=True)
Nicole Kappelhof
fonte