Excel no respeta la configuración del delimitador para leer o escribir archivos CSV

20

Al guardar / abrir archivos CSV en Excel, el separador predeterminado es un punto y coma (;), ya que necesito que sea una coma (,) Traté de cambiarlo cambiando la configuración regional y de idioma después de otras publicaciones sobre este tema ( es decir, ¿Cómo obtener Excel para interpretar la coma como delimitador por defecto en archivos CSV? ).

Sin embargo, después de cambiar el Separtor de lista en esa configuración, mi Excel sigue guardando archivos CSV con un punto y coma. ¿Se debe a que Excel se instaló mientras mi separador de listas estaba configurado como punto y coma? o hay otra configuración que me falta aquí?

Gracias de antemano.

Sandra
fuente
¿El problema es leer archivos CSV existentes o crear uno usando una coma como delimitador?
Fixer1234
Ambos, ya he hecho lo que @Raystafarian mencionó antes de guardar un nuevo archivo. Mi configuración regional es correcta. Luego abro Excel y lo guardo como CSV y cuando abro el archivo en el bloc de notas puedo ver que usaba un punto y coma. Si abro en Excel, se carga correctamente porque Excel todavía usa a; para separar las columnas.
Sandra

Respuestas:

35

Encontré el problema. Mi símbolo decimal en la configuración regional también era una coma (europea), por lo que, incluso cuando mi separador de listas era una coma, el CSV se guardaba con punto y coma. Ahora cambié mi símbolo decimal a un punto y ahora el archivo CSV se creó correctamente con comas como separadores. Probé esto dos veces y ahora sé que debe haber una excepción: si el símbolo decimal es una coma, entonces el separador de lista será un punto y coma, incluso se establece de otra manera.

Sandra
fuente
12
Gracias por tomarse el tiempo para actualizar la publicación con una respuesta.
Estudiante de Gary
5

Para salvar

Debe ajustar el separador de lista en la configuración regional y de idioma antes de guardar el archivo:

ingrese la descripción de la imagen aquí


Para abrir

Ir a datos - Obtener datos externos - del texto

ingrese la descripción de la imagen aquí

selecciona el archivo

Seleccione delimitado , presione siguiente ingrese la descripción de la imagen aquí

y seleccione la coma delimitador

ingrese la descripción de la imagen aquí

Haga clic en terminar

ingrese la descripción de la imagen aquí


O bien, tire de él y luego use el texto para ver las columnas aquí.

Raystafarian
fuente
Si leo la pregunta correctamente, parece que el problema es crear (guardar), un archivo delimitado usando comas para el delimitador (segundo párrafo).
Fixer1234
@ Fixer1234 sí, así es como lo leí al principio. Pero luego pensé que el primer párrafo era el importante. No tengo idea de cuál es la correcta. De cualquier manera, no tengo una solución para la creación que no sea lo que el OP mencionó que ya han probado.
Raystafarian
Sí, cambié la configuración regional antes de guardar el archivo. No sirvió de nada. Cuando recibo archivos CSV de otras personas que están delimitados con una coma, entonces uso su método para importar los datos correctamente, luego guardo y va a un punto y coma. Es molesto porque cada vez que necesito ir al bloc de notas y reemplazar todos los puntos y comas con comas antes de usar mi CSV como archivo de importación.
Sandra
0

Aquí hay una macro muy bonita que funciona bastante bien:

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
fuente
0

Esto es un poco viejo, pero me encontré con el mismo problema:
tenía un CSV delimitado con punto y coma ( ;). La configuración del separador del sistema (Windows) también se establece en punto y coma.

  • Si abrí el CSV manualmente, el archivo se separó correctamente.
  • Si dejo que VBA lo abra, lo separó incorrectamente con una coma.

Usar Delimiter:=";"aparentemente solo funciona con .txt.

SIN EMBARGO, el uso Local :=Trueresolvió el problema para mí:

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