Simpan file excel sebagai csv dengan vba yang dibatasi titik koma

Saat membuat file CSV menggunakan menu untuk mengekspor lembar kerja, Arkadiusz mencatat bahwa dia dapat menentukan bahwa dia ingin menggunakan titik koma [;] sebagai pembatas bidang. Namun, jika dia menyimpan file CSV menggunakan makro [FileFormat. =xlCSV atau xlCSVWindows], maka dia tidak dapat menentukan titik koma sebagai pembatas

Ini bekerja dengan cara ini dengan desain di VBA. Implementasi Excel dari rutin ekspor untuk VBA selalu menggunakan apa pun pengaturan regional Windows untuk menentukan bagaimana item dalam CSV harus dipisahkan. Khususnya, rutin melihat bidang Pemisah Daftar untuk pembatas. Ini berarti Anda dapat, jika diinginkan, mengubah pembatas menjadi titik koma dengan mengubah pengaturan Pemisah Daftar di konfigurasi pengaturan regional Anda

Jika Anda tidak ingin mengubah pengaturan regional, Anda dapat menulis makro Anda sendiri yang akan menampilkan file dengan cara apa pun yang Anda inginkan. Pertimbangkan, sejenak, makro berikut, yang akan menampilkan file

Sub CreateFile[]
    FName = ActiveWorkbook.Name
    If Right[FName, 4] = ".xls" Then
        FName = Mid[FName, 1, Len[FName] - 4]
    End If

    Columns[1].Insert Shift:=xlToRight

    For i = 1 To Range["B65000"].End[xlUp].Row
        TempString = ""
        For j = 2 To Range["HA1"].End[xlToLeft].Column
            If j  Range["HA1"].End[xlToLeft].Column Then
                TempString = TempString & _
                  Cells[i, j].Value & ";"
            Else
                TempString = TempString & _
                  Cells[i, j].Value
            End If
        Next
        Cells[i, 1].Value = TempString
    Next

    Columns[1].Select
    Selection.Copy
    Workbooks.Add
    Range["A1"].Select
    ActiveSheet.Paste
    Application.CutCopyMode = False

    ActiveWorkbook.SaveAs Filename:=FName & ".txt", _
      FileFormat:=xlPrinter
End Sub

Makro ini menggunakan pendekatan unik untuk membuat file keluaran. Apa yang dilakukannya adalah memasukkan kolom di sebelah kiri lembar kerja Anda, lalu menggabungkan semua data di sebelah kanan kolom itu ke dalam kolom A yang baru disisipkan. Itu menambahkan titik koma di antara setiap bidang. Setelah selesai, itu mengambil informasi yang dimasukkan ke dalam kolom A dan menuliskannya ke dalam buku kerja baru. Buku kerja ini kemudian disimpan ke disk menggunakan format file xlPrinter, yang berarti buku kerja ini dikeluarkan "sebagaimana adanya" tanpa modifikasi apa pun

Jika Anda lebih suka pendekatan yang lebih langsung, menulis informasi langsung ke file tanpa membuat perubahan pada lembar kerja Anda, lihat makro di posting blog ini

//web.archive.org/web/20060302021412//www.dicks-blog.com:80/archives/2004/11/09/roll-your-own-csv/
_

Makro menggunakan koma di antara setiap bidang, tetapi dapat dengan mudah dimodifikasi sehingga menggunakan titik koma sebagai gantinya

jika Sahsur benar, bahwa pengaturan regional ini ditimpa oleh bug, dia mungkin menyediakan rutinitas untuk mengatur ulang koma kembali ke titik koma sebelum menjalankan wkb8. Pernyataan SaveAs[], dan semua harus berfungsi. Namun, saya tidak tahu cara menelepon dari kode VBA atau VB. Kode .NET [yang menunjukkan BUG yang sama], kode penanganan tabel reginal

Jika Anda menggunakan lokal bahasa Inggris dan Anda di Excel mengubah pemisah desimal dari sistem menjadi koma, Excel memahami bahwa dia tidak dapat menggunakan koma sebagai pembatas bidang dan akan menggunakan titik koma sebagai gantinya dan akan menyimpan file csv dalam format non-bahasa Inggris, misalnya. 1,5;23,45

Namun, jika Anda bekerja dengan misalnya lokal Ceko [atau mungkin dengan lokal Prancis] dan Anda di Excel mengubah pemisah desimal menjadi titik sebagai benar untuk bahasa Inggris csv dan simpan file ini. Format file misalnya. 1. 5;23;45 dan tidak diharapkan 1. 5,23. 45. Alasannya adalah, saya kira, Excel tidak memiliki alasan untuk mengubah pemisah bidang dari titik koma menjadi koma, karena titik koma adalah pemisah bidang yang benar untuk file csv dan dan sama sekali tidak bertentangan dengan pembatas desimal titik atau koma.

Jadi dengan lokal bahasa Inggris Anda dapat menyimpan csv non-Inggris biasa dengan pembatas desimal koma dan pemisah bidang titik koma, tetapi dengan lokal non-Inggris [Ceko atau Prancis] Anda tidak dapat menyimpan csv bahasa Inggris biasa, dengan pembatas dot desimal dan pemisah bidang koma, tetapi

Tentu saja kemungkinan lain adalah mengganti lokal dengan kemungkinan masalah lain, misalnya dengan aplikasi lain

Salam Hormat,
Martin Molhanec

Balas

kata hayder
7 Mei 2022 pukul 1. 49 sore

[ 0. 0. 0. 1. 7. 6. 0. 0. 0. 0. 0. 2. 4. 1
0. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0
0. 0. 0. 0. 0. 0. 0. 34. 128. 106. 6. 0. 23. 4
1. 95. 128. 42. 18. 7. 128. 15. 2. 18. 16. 4. 10. 23
46. 6. 10. 73. 79. 1. 0. 1. 19. 12. 29. 128. 83. 27
10. 5. 29. 7. 3. 23. 82. 128. 128. 25. 128. 71. 13. 15
25. 40. 66. 51. 37. 43. 25. 81. 128. 19. 5. 12. 47. 43
20. 73. 13. 19. 14. 8. 40. 77. 52. 23. 48. 22. 14. 6
5. 38. 31. 37. 78. 29. 4. 1. 37. 36. 56. 81. 20. 9
3. 6. ];[ 0. 0. 0. 1. 7. 6. 0. 0. 0. 0. 0. 2. 4. 1
0. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0
0. 0. 0. 0. 0. 0. 0. 34. 128. 106. 6. 0. 23. 4
1. 95. 128. 42. 18. 7. 128. 15. 2. 18. 16. 4. 10. 23
46. 6. 10. 73. 79. 1. 0. 1. 19. 12. 29. 128. 83. 27
10. 5. 29. 7. 3. 23. 82. 128. 128. 25. 128. 71. 13. 15
25. 40. 66. 51. 37. 43. 25. 81. 128. 19. 5. 12. 47. 43
20. 73. 13. 19. 14. 8. 40. 77. 52. 23. 48. 22. 14. 6
5. 38. 31. 37. 78. 29. 4. 1. 37. 36. 56. 81. 20. 9
3. 6. ];BENAR

Harap perlu membuat kode atau alat untuk menjadi tiga detail di atas sebagai kolom, artinya [ ] [ ] Benar sebagai tiga kolom

Bagaimana cara menyimpan file Excel sebagai CSV yang dibatasi titik koma?

Ubah pemisah saat menyimpan file Excel sebagai CSV .
Klik File > Opsi > Lanjutan
Di bawah Opsi pengeditan, kosongkan kotak centang Gunakan pemisah sistem
Ubah pemisah Desimal default. Karena ini akan mengubah cara angka desimal ditampilkan di lembar kerja Anda, pilih pemisah Ribuan yang berbeda untuk menghindari kebingungan

Bisakah file CSV dipisahkan titik koma?

Bergantung pada pengaturan regional Excel Anda, pembatas/pemisah default Anda mungkin menggunakan titik koma [;] atau koma [,] untuk memisahkan item dalam file CSV.

Bagaimana cara menyimpan file CSV dengan pemisah pembatas yang benar?

Buka File > Simpan Sebagai. Klik Telusuri. Dalam kotak dialog Simpan Sebagai, di bawah kotak Simpan sebagai tipe, pilih format file teks untuk lembar kerja;

Bài mới nhất

Chủ Đề