O Excel não respeita a configuração do delimitador para leitura ou gravação de arquivos CSV

O Excel não respeita a configuração do delimitador para leitura ou gravação de arquivos CSV

Ao salvar/abrir arquivos CSV no Excel, o separador padrão é um ponto e vírgula ;, como preciso que seja uma vírgula, ,tentei alterá-lo alterando as configurações de idioma e regional seguindo vários outros posts sobre esse problema (ou seja,Como fazer com que o Excel interprete a vírgula como delimitador padrão em arquivos CSV?).

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

Responder1

Eu encontrei o problema. Meu símbolo decimal nas configurações regionais também era uma vírgula (europeia), portanto, mesmo quando meu separador de lista era uma 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 foi 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 da lista será um ponto e vírgula, mesmo que seja definido de outra forma.

Responder2

Para economizar

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

insira a descrição da imagem aqui


Para abrir

Vá paraDados - Obtenha dados externos - de texto

insira a descrição da imagem aqui

selecione o arquivo

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

e selecione odelimitador vírgula

insira a descrição da imagem aqui

Clique em finalizar

insira a descrição da imagem aqui


Ou puxe-o e use o texto nas colunasVeja aqui

Responder3

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

Responder4

Isso é um pouco antigo, mas me deparei com o mesmo problema:
tinha um CSV delimitado por 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 será separado incorretamente com uma vírgula.

Aparentemente, usar Delimiter:=";"só funciona com .txt.

NO ENTANTO, usar Local :=Trueresolveu o problema para mim:

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

informação relacionada