Excel tidak menghormati pengaturan pembatas untuk membaca atau menulis file CSV

20

Saat menyimpan / membuka file CSV di Excel, pemisah default adalah titik koma (;), karena saya memerlukannya menjadi koma (,) saya mencoba mengubahnya dengan mengubah pengaturan Bahasa dan Regional mengikuti beberapa posting lain tentang masalah ini ( yaitu Cara mendapatkan Excel untuk menafsirkan koma sebagai pembatas default dalam file CSV? ).

Namun, setelah mengubah daftar partisi dalam pengaturan itu, Excel saya terus menyimpan file CSV dengan titik koma. Apakah itu karena Excel diinstal ketika pemisah daftar saya ditetapkan sebagai titik koma? atau ada pengaturan lain yang saya lewatkan di sini?

Terima kasih sebelumnya.

Sandra
sumber
Apakah masalah dalam membaca file CSV yang ada atau membuatnya menggunakan koma sebagai pembatas?
fixer1234
Keduanya, saya sudah melakukan apa yang @Raystafarian sebutkan sebelum menyimpan file baru. Pengaturan regional saya sudah benar. Lalu saya membuka Excel dan menyimpan sebagai CSV dan ketika saya membuka file di notepad saya bisa melihat bahwa itu menggunakan tanda titik koma. Jika saya membuka di Excel itu memuat dengan benar karena Excel masih menggunakan; untuk memisahkan kolom.
Sandra

Jawaban:

35

Saya menemukan masalahnya. Simbol desimal saya di pengaturan Regional juga koma (Eropa) jadi, bahkan ketika pemisah Daftar saya adalah koma, CSV disimpan dengan titik koma. Sekarang saya mengubah simbol desimal saya ke titik dan sekarang file CSV dibuat dengan benar dengan koma sebagai pemisah. Saya menguji ini dua kali dan sekarang tahu bahwa harus ada pengecualian: jika simbol desimal adalah koma, maka pemisah daftar akan menjadi titik koma bahkan diatur sebaliknya.

Sandra
sumber
12
Terima kasih telah meluangkan waktu untuk memperbarui posting dengan jawaban.
Siswa Gary
5

Untuk menghemat

Anda perlu menyesuaikan pemisah daftar dalam pengaturan bahasa dan regional sebelum menyimpan file -

masukkan deskripsi gambar di sini


Untuk pembukaan

Pergi ke Data - Dapatkan Data Eksternal - Dari Teks

masukkan deskripsi gambar di sini

pilih file

Pilih dibatasi , tekan selanjutnya masukkan deskripsi gambar di sini

dan pilih koma pembatas

masukkan deskripsi gambar di sini

Klik selesai

masukkan deskripsi gambar di sini


Atau, tarik dan gunakan teks ke kolom lihat di sini

Raystafarian
sumber
Jika saya membaca pertanyaan dengan benar, sepertinya masalahnya adalah membuat (menyimpan), file yang dibatasi menggunakan koma untuk pembatas (paragraf ke-2).
fixer1234
@ fixer1234 ya begitulah cara saya membacanya pada awalnya. Tapi kemudian saya pikir paragraf pertama adalah yang penting. Saya tidak tahu mana yang benar. Either way, saya tidak punya solusi untuk penciptaan selain apa yang disebutkan OP telah mereka coba.
Raystafarian
Ya, saya memang mengubah pengaturan regional sebelum menyimpan file. Itu tidak membantu. Ketika saya menerima file CSV dari orang lain yang dibatasi dengan koma, maka saya menggunakan metode Anda untuk mengimpor data dengan benar, kemudian saya simpan dan pergi ke titik koma. Ini menjengkelkan karena setiap kali saya harus pergi ke notepad dan mengganti semua titik koma dengan koma sebelum menggunakan CSV saya sebagai file impor.
Sandra
0

Berikut ini adalah makro yang sangat bagus yang bekerja dengan sangat baik:

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

Ini agak lama, tetapi saya mengalami masalah yang sama:
Apakah CSV dibatasi dengan titik koma ( ;). Pengaturan pemisah sistem (Windows) juga diatur ke titik koma.

  • Jika saya membuka CSV secara manual, file itu dipisahkan dengan benar.
  • Jika saya membiarkan VBA membukanya, itu memisahkannya dengan koma.

Menggunakan Delimiter:=";"ternyata hanya bekerja dengan .txt.

NAMUN, menggunakan Local :=Truememecahkan masalah bagi saya:

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