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 -
Para abrir
Vá paraDados - Obtenha dados externos - de texto
selecione o arquivo
Selecionedelimitado, pressione próximo
e selecione odelimitador vírgula
Clique em finalizar
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 :=True
resolveu o problema para mim:
Workbooks.Open(Filename:=fullpath, Local:=True)