Note: The other languages of the website are Google-translated. Back to English

Bagaimana cara batch mengkonversi beberapa file CSV ke file XLS (X) di Excel?

Untuk mengonversi file CSV ke file XlS atau XLSX sangat mudah sekali bagi Anda dengan menerapkan fitur Save As. Namun, untuk mengonversi beberapa file CSV ke file XLS atau XLSX dari sebuah folder memakan waktu dengan menyimpan satu per satu secara manual. Di sini saya memperkenalkan kode makro untuk dengan cepat mengonversi semua file CSV ke file XLS (x) dari folder.

Batch mengkonversi file CSV ke file XlS (X) dengan kode makro


Batch mengkonversi file CSV ke file XlS (X) dengan kode makro

Untuk mengonversi beberapa file CSV dari satu folder ke file XLS (X), Anda dapat melakukan langkah-langkah di bawah ini:

1. Aktifkan buku kerja baru, tekan Alt + F11 kunci untuk membuka Microsoft Visual Basic untuk Aplikasi jendela, dan klik Menyisipkan > Modul. Lihat tangkapan layar:
doc batch mengkonversi cvs xls 1

Note: Pastikan semua file CSV yang ingin Anda konversi ditutup.

2. Kemudian tempelkan kode makro di bawah ini ke Modul skrip, dan tekan F5 kunci untuk menjalankan kode.

VBA: Konversi CSV ke XLS

Sub CSVtoXLS()
'UpdatebyExtendoffice20170814
    Dim xFd As FileDialog
    Dim xSPath As String
    Dim xCSVFile As String
    Dim xWsheet As String
    Application.DisplayAlerts = False
    Application.StatusBar = True
    xWsheet = ActiveWorkbook.Name
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    xFd.Title = "Select a folder:"
    If xFd.Show = -1 Then
        xSPath = xFd.SelectedItems(1)
    Else
        Exit Sub
    End If
    If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\"
    xCSVFile = Dir(xSPath & "*.csv")
    Do While xCSVFile <> ""
        Application.StatusBar = "Converting: " & xCSVFile
        Workbooks.Open Filename:=xSPath & xCSVFile
        ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlNormal
        ActiveWorkbook.Close
        Windows(xWsheet).Activate
        xCSVFile = Dir
    Loop
    Application.StatusBar = False
    Application.DisplayAlerts = True
End Sub

3. Pada dialog popping out, pilih folder tertentu yang berisi file CSV yang ingin Anda konversi. Lihat tangkapan layar:
doc batch mengkonversi cvs xls 2

4. klik OK, semua file CSV di folder yang dipilih telah diubah menjadi file XLS di dalamnya.
doc batch mengkonversi cvs xls 3

jenis: Jika Anda ingin mengonversi file CSV ke file XLSX, Anda menggunakan kode VBA di bawah ini.

VBA: Konversi file CSV ke XLSX

Sub CSVtoXLS()
'UpdatebyExtendoffice20170814
    Dim xFd As FileDialog
    Dim xSPath As String
    Dim xCSVFile As String
    Dim xWsheet As String
    Application.DisplayAlerts = False
    Application.StatusBar = True
    xWsheet = ActiveWorkbook.Name
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    xFd.Title = "Select a folder:"
    If xFd.Show = -1 Then
        xSPath = xFd.SelectedItems(1)
    Else
        Exit Sub
    End If
    If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\"
    xCSVFile = Dir(xSPath & "*.csv")
    Do While xCSVFile <> ""
        Application.StatusBar = "Converting: " & xCSVFile
        Workbooks.Open Filename:=xSPath & xCSVFile
        ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xlsx", vbTextCompare), xlWorkbookDefault
        ActiveWorkbook.Close
        Windows(xWsheet).Activate
        xCSVFile = Dir
    Loop
    Application.StatusBar = False
    Application.DisplayAlerts = True
End Sub

dengan cepat mengonversi atau mengekspor berbagai lembar untuk memisahkan XLS / Word / PDF atau file format lainnya sekaligus

Biasanya, Excel tidak mendukung Anda dengan opsi untuk mengekspor atau menyimpan rentang dengan cepat sebagai file CSV atau Excel. Jika Anda ingin menyimpan rentang data sebagai CSV atau buku kerja di Excel, Anda mungkin perlu menggunakan Makro VBA untuk melakukan ini atau menyalin rentang ke clipboard dan menempelkannya di buku kerja baru lalu menyimpan buku kerja sebagai CSV atau Buku Kerja. Kutools untuk Excel menambah Excel dengan Ekspor Rentang ke File utilitas untuk pengguna Excel yang ingin memproses operasi berikut dengan cepat:  Klik untuk
30
-hari uji coba gratis berfitur lengkap!
doc mengekspor rentang sel ke file
 
Kutools for Excel: dengan lebih dari
300
add-in Excel yang praktis, gratis untuk dicoba tanpa batasan
30
hari.

Artikel Relatif:


Alat Produktivitas Kantor Terbaik

Kutools for Excel Memecahkan Sebagian Besar Masalah Anda, dan Meningkatkan Produktivitas Anda hingga 80%

  • Reuse: Masukkan dengan cepat rumus, bagan yang kompleks dan apa pun yang pernah Anda gunakan sebelumnya; Enkripsi Sel dengan kata sandi; Buat Milis dan mengirim email ...
  • Bilah Formula Super (dengan mudah mengedit beberapa baris teks dan rumus); Membaca Tata Letak (membaca dan mengedit sel dalam jumlah besar dengan mudah); Tempel ke Rentang yang Difilter...
  • Gabungkan Sel / Baris / Kolom tanpa kehilangan Data; Pisahkan Konten Sel; Gabungkan Baris / Kolom Duplikat... Mencegah Sel Duplikat; Bandingkan Rentang...
  • Pilih Duplikat atau Unik Baris; Pilih Baris Kosong (semua sel kosong); Temukan Super dan Temukan Fuzzy di Banyak Buku Kerja; Pilih Acak ...
  • Salinan Tepat Beberapa Sel tanpa mengubah referensi rumus; Buat Referensi Otomatis ke Beberapa Lembar; Sisipkan Poin, Kotak Centang, dan lainnya ...
  • Ekstrak Teks, Tambahkan Teks, Hapus berdasarkan Posisi, Hapus Space; Membuat dan Mencetak Subtotal Paging; Konversi Konten Antar Sel dan Komentar...
  • Filter Super (simpan dan terapkan skema filter ke sheet lain); Penyortiran Lanjutan menurut bulan / minggu / hari, frekuensi dan lainnya; Filter Khusus dengan huruf tebal, miring ...
  • Gabungkan Workbooks dan WorkSheets; Gabungkan Tabel berdasarkan kolom kunci; Pisahkan Data menjadi Beberapa Lembar; Konversi Batch xls, xlsx dan PDF...
  • Lebih dari 300 fitur canggih. Mendukung Office / Excel 2007-2021 dan 365. Mendukung semua bahasa. Penerapan yang mudah di perusahaan atau organisasi Anda. Fitur lengkap Uji coba gratis 30 hari. Jaminan uang kembali 60 hari.
tab kte 201905

Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah

  • Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
  • Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
  • Meningkatkan produktivitas Anda sebesar 50%, dan mengurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah
Urutkan komentar berdasarkan
komentar (37)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Saya ingin melakukan yang sebaliknya - mengonversi XLS ke CSV. apakah skrip ini berfungsi?
Sub CSVtoXLS()
'Perbarui olehExtendoffice20170814
Redupkan xFd Sebagai FileDialog
Redupkan xSPath Sebagai String
Redupkan xXLSFile Sebagai String
Redupkan xWsheet Sebagai String
Application.DisplayAlerts = Salah
Application.StatusBar = Benar
xWsheet = ActiveWorkbook.Nama
Setel xFd = Application.FileDialog(msoFileDialogFolderPicker)
xFd.Title = "Pilih folder:"
Jika xFd.Tunjukkan = -1 Maka
xSPath = xFd.SelectedItems(1)
Lain
Keluar dari Sub
End If
Jika Benar(xSPath, 1) <> "\" Kemudian xSPath = xSPath + "\"
xXLSFile = Dir(xSPath & "*.xls")
Lakukan Sementara xXLSFile <> ""
Application.StatusBar = "Mengonversi: " & xXLSFile
Workbooks.Open Filename:=xSPath & xXLSFile
ActiveWorkbook.SaveAs Replace(xSPath & xXLSFile, ".xls", ".csv", vbTextCompare), xlNormal
ActiveWorkbook.Tutup
Windows(xWsheet).Aktifkan
xXLSFile = Dir
Lingkaran
Application.StatusBar = Salah
Application.DisplayAlerts = Benar
End Sub
Komentar ini diminimalkan oleh moderator di situs
Sub KonversiCSVToXlsx()



Redupkan myfile Sebagai String

Redupkan nama lama Sebagai String, namabaru Sebagai String

File kerja redup

Redupkan nama folder Sebagai String



Application.DisplayAlerts = Salah

Application.ScreenUpdating = Salah



' Tangkap nama file saat ini

file saya = ActiveWorkbook.Name



' Setel nama folder untuk dikerjakan

folderName = "D:\tmp\"



' Ulangi semua file CSV dalam folder

file kerja = Dir(namafolder & "*.CSV")

Do While workfile <> ""

'Buka file CSV

Workbooks.Open Filename:=namafolder & file kerja

' Tangkap nama file CSV lama

oldfname = ActiveWorkbook.FullName

' Konversikan ke XLSX

newfname = folderName & Kiri(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & ".xlsx"

ActiveWorkbook.SaveAs Filename:=newfname, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=True

ActiveWorkbook.Tutup

'Hapus file CSV lama

Bunuh nama lama

Windows (file saya). Aktifkan

file kerja = Dir()

Lingkaran



Application.DisplayAlerts = Benar

Application.ScreenUpdating = Benar



End Sub
Komentar ini diminimalkan oleh moderator di situs
"Tips: Jika Anda ingin mengonversi file CSV ke file XLXS, Anda hanya perlu mengubah .xls menjadi .xlsx di makro ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare)."

Saya mencoba ini, dan Excel tidak dapat membuka file yang dihasilkan. Saya mendapat pesan berikut: "Excel tidak dapat membuka file 'filename.xlsx' karena format file atau ekstensi file tidak valid. Pastikan file tidak rusak dan ekstensi file cocok dengan format file."

Namun, skrip berhasil dikonversi ke .xls.
Komentar ini diminimalkan oleh moderator di situs
Saya tidak menemukan masalah itu sebelumnya, terima kasih atas komentar Anda yang benar. Saya telah memperbaiki tipnya.
Komentar ini diminimalkan oleh moderator di situs

Komentar ini diminimalkan oleh moderator di situs
Terima kasih banyak atas skrip Anda yang luar biasa untuk CSV ke XLS. Ini jauh lebih berguna untuk pekerjaan saya
Komentar ini diminimalkan oleh moderator di situs
Hai,

Skrip Anda bagus tetapi tidak mengonversi csv yang dipisahkan oleh titik koma. Bisakah Anda memposting solusi untuk itu?

Terima kasih
Komentar ini diminimalkan oleh moderator di situs
Maaf, di sini saya tidak punya solusi, mungkin Anda dapat mengajukan pertanyaan Anda ke forum kami, orang lain dapat membantu Anda. https://www.extendoffice.com/forum.html
Komentar ini diminimalkan oleh moderator di situs
saya mungkin terlambat saya baru saja mendapatkan masalah di mana saya perlu mengonversi file CSV titik koma dan saya menambahkan ini ke kode dan berhasil semoga ini akan membantu seseorang

Ubah 'Workbooks.Open Filename:=xSPath & xCSVFile' Dengan ini 'Workbooks.Open Filename:=xSPath & xCSVFile, Delimiter:=";", Local:=True'
Komentar ini diminimalkan oleh moderator di situs
Saya menggunakan beberapa file csv untuk beberapa xls tapi mendapatkan file xls de csv salah; info terpisah tetapi menjadi bersama dalam sel. Bagaimana ini bisa diselesaikan?
Komentar ini diminimalkan oleh moderator di situs
Kode tidak dapat mendukung file csv koma yang dipisahkan.
Komentar ini diminimalkan oleh moderator di situs
Ketika saya memberi nama folder, program berkata, "Tidak ada file yang cocok dengan pencarian Anda." Tapi ada 2,609 file .csv di folder
Komentar ini diminimalkan oleh moderator di situs
Kode tidak mendukung file csv koma yang dipisahkan, apakah file Anda dalam kasus ini?
Komentar ini diminimalkan oleh moderator di situs
Halo,

artikel yang bagus - terima kasih! Hampir bekerja untuk saya.

Inilah masalahnya: Saya memiliki file csv yang dibatasi pipa. Saya telah mengubah pembatas windows default (melalui panel kontrol/pengaturan regional) menjadi "|". Jadi, ketika saya membuka file csv dengan Excel, itu terbuka, langsung membaca dan mem-parsing bidang ke kolom dengan benar. Yang harus saya lakukan adalah menyimpan sebagai xls atau xlsx, selesai. Ketika saya melihat kode Anda, seharusnya itulah yang dilakukan kode: Ini membuka file csv dalam folder, menyimpannya sebagai xls atau xlsx, dan mengulanginya.

Inilah masalahnya: Ketika saya membuka file Excel itu, pembatas pipa masih ada, tidak ada yang diuraikan ke kolom. Ini adalah perilaku seperti sebelum saya mengubah pengaturan default yang dibatasi pipa di pengaturan Windows. Jadi sepertinya Excel tidak menggunakan pengaturan Windows itu. Saya memverifikasi ini dengan mengganti pembatas pipa dengan pembatas koma dalam salinan file - dari dua file, pembatas pipa tetap tidak diuraikan, pembatas koma dikonversi dengan baik.

Adakah ide di mana delimitasi koma bawaan Excel itu dapat ditemukan atau diubah, atau apakah ada cara dalam kode untuk melakukannya? Saya lebih suka TIDAK harus melakukan pencarian dan penggantian, lalu simpan ...

Terima kasih, HC
Komentar ini diminimalkan oleh moderator di situs
Jika Anda ingin membagi data menjadi kolom berdasarkan pembatas pipa di Excel, cukup gunakan fungsi Text to Columns untuk membagi data dengan / setelah menutupi file csv ke xls.
Komentar ini diminimalkan oleh moderator di situs
Tidak benar-benar membuat kode berguna untuk file excel.
Komentar ini diminimalkan oleh moderator di situs
Hai, skrip hebat yang berfungsi untuk saya setelah mencoba semua skrip lain yang tersedia di google. Saya telah menambahkan beberapa baris lagi yang melakukan operasi teks ke kolom yang saya inginkan. Adakah yang bisa membantu saya cara memodifikasi skrip dengan menentukan lokasi folder di drive lokal alih-alih membuka kotak dialog karena saya sebenarnya mengotomatiskan sistem
. Terima kasih sebelumnya
Komentar ini diminimalkan oleh moderator di situs
Hi
Bisakah Anda membagikan skrip yang menampilkan teks ke kolom??
Salam Hormat
Komentar ini diminimalkan oleh moderator di situs
Skrip Hebat setelah mencari semua skrip lain yang tersedia di google. Adakah yang bisa membantu cara memodifikasi skrip ini dengan menentukan lokasi folder di drive lokal alih-alih mengizinkannya membuka kotak dialog karena saya sebenarnya mengotomatiskan sistem. Terima kasih sebelumnya
Komentar ini diminimalkan oleh moderator di situs
Sedikit kode yang keren. Sangat berguna. Kalau tidak salah kode untuk .xlsx terlihat sama dengan kode .xls.

Garis ini:
ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlWorkbookDefault

Saya berasumsi seharusnya: ".csv" , ".xlsx", vbTextCompare dll.
Komentar ini diminimalkan oleh moderator di situs
Saya telah mengubah kodenya, seperti yang dijelaskan di atas; sekarang skrip berfungsi seperti yang diharapkan: ini menghasilkan file xlsx
Komentar ini diminimalkan oleh moderator di situs
tidak, kamu belum. masih tertulis xls di kedua versi.
Komentar ini diminimalkan oleh moderator di situs
makro ini tidak menampilkan file csv saya
Komentar ini diminimalkan oleh moderator di situs
Satu masalah kecil dengan kode ini adalah bahwa beberapa akurasi (jumlah desimal) dapat hilang saat membuka csv dan menyimpannya sebagai xlsx.
Cara untuk mencegahnya adalah dengan memilih semua sel tepat setelah dibuka, atur jumlah desimal ke jumlah yang diinginkan (15 untuk saya pribadi), dan *kemudian* simpan sebagai xlsx

Jika tidak, xlsx memiliki lebih sedikit detail (kurang akurat dalam hal desimal) daripada csv asli, yang dapat menyebabkan masalah di beberapa aplikasi
Komentar ini diminimalkan oleh moderator di situs
itu mengubah format kolom tanggal saya dari dd-mm-yyyy menjadi dd/mm/yyyy, adakah yang bisa membantu dengan cara mencegah skrip ini mengubah format kolom.
Terima kasih banyak.
Komentar ini diminimalkan oleh moderator di situs
Hai, ular beludak, setelah konversi, Anda dapat memformatnya kembali, pilih tanggal dan klik kanan untuk memilih Format Sel dari menu konteks, dalam dialog Format Sel, di bawah tab Angka, klik Kustom di daftar Kategori, lalu ketik mm-dd- yyyy ke dalam kotak teks di bagian kanan. Atau jika Anda memiliki Kutools for Excel, terapkan Terapkan Format Tanggal untuk mengubah format tanggal sesuai kebutuhan.
Komentar ini diminimalkan oleh moderator di situs
artikel yang bagus. Bagaimana saya bisa, menyimpan semua file yang dikonversi di lokasi baru? Bisakah Anda memperbarui kode dan mengirimkannya kepada saya. Seperti mengizinkan pengguna untuk memilih folder tujuannya.


Terima kasih
Komentar ini diminimalkan oleh moderator di situs
Anda memiliki kesalahan pada baris 22 dari csv ke xlsx
Dengan Kesalahan - ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlWorkbookDefault
Dikoreksi - ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xslx", vbTextCompare), xlWorkbookDefault
Komentar ini diminimalkan oleh moderator di situs
Terima kasih untuk pengingat Anda, saya telah memperbaruinya, terima kasih lagi.
Komentar ini diminimalkan oleh moderator di situs
Saya mendapatkan kesalahan "Variabel objek atau dengan variabel blok tidak disetel" untuk baris ini:
xFd.Title = "/Users/[my.name]/Documents/[myFolder]" >> ini adalah jalur folder tertentu di komputer saya tempat saya melakukan konversi (folder tersebut memiliki banyak file csv di dalamnya )

Apakah saya melakukan sesuatu yang salah di sini?
Komentar ini diminimalkan oleh moderator di situs
Ini berfungsi untuk saya, tetapi ekstensi file tidak berubah. Ada tips?
Komentar ini diminimalkan oleh moderator di situs
Sama untuk saya -- semua file tetap .csv.
Komentar ini diminimalkan oleh moderator di situs
Semua file csv yang Anda pilih telah disimpan sebagai file excel baru, file asli (csv) tidak berubah, ada file excel baru dengan konten yang sama.
Komentar ini diminimalkan oleh moderator di situs
Saya memiliki masalah yang sama. Jika file sumber Anda memiliki ekstensi dalam huruf kapital (.CSV), itu tidak berfungsi. Ganti saja .csv ke .CSV dalam kode di baris 22 dan itu akan berfungsi. Yah, setidaknya bagi saya itu terjadi.
Komentar ini diminimalkan oleh moderator di situs
Bagaimana saya memasukkan kode ke dalam rutin file batch XLSX untuk titik koma memisahkan data ke dalam kolom terpisah? Kode yang dibagikan mengonversi file dari .csv ke .xlsx, tetapi tidak memisahkan data menjadi kolom terpisah.
Komentar ini diminimalkan oleh moderator di situs
ya itu tidak bekerja.
Komentar ini diminimalkan oleh moderator di situs
Buenos dias compañeros

Adiciona a lo que hace el script, quisiera poder convertir inmediatamente el texto en columnas, por la opción que no es delimitado por ningún tipo de caracter, adicional los tamaños de las columnas son diferentes. Vale la pena aclarar que si tomo cada archivo por separado y le aplico la opción de texto en columnas, bajo esa opción los puedo convertir sin problemas, abriéndolos uno por uno, pero si grabo esa macro y le aplico la misma macro a todos usando la opción de "USAR REFERENCIAS RELATIVAS", no hace el proceso bien, porque el graba las posiciones de la delimitación del archivo que uso de ejemplo, pero necesito que lo aplique nuevo a cada archivo, es decir, comadao decir y le hiciera manualmente la opción de delimitación y no aplique los valores de ubicación de las columnas identificados en el archivo ejemplo.

Ya inserte esa opcion en este archivo, sin embargo pasa lo que indico en la lineas arriba, solo requiero saber como puedo hacer para aplicar la konversi a cada archivo, aplicando la delimitacion del campo como su fuera un archivo nuevo.


Workbooks.Open Filename:=xSPath & xCSVFile
ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xlsx", vbTextCompare), xlWorkbookDefault

ESTA PARTE ES LA QUE SETUJU APLICANDO EL FORMATO DEL TEXTO A COLUMNAS

StartRow:=1, Tipe Data:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(18 _
, 1), Array(38, 1)), TrailingMinusNumbers:=True
ActiveCell.Cells.Pilih
ActiveCell.Cells.EntireColumn.AutoFit
ActiveCell.Offset(1, 0).Range("A1").Pilih
ActiveWorkbook.Simpan

HASTA AQUI SETUJU YO

ActiveWorkbook.Tutup
Windows(xWsheet).Aktifkan
xCSVFile = Dir

Lingkaran
Application.StatusBar = Salah
Application.DisplayAlerts = Benar
End Sub

No se si me hago explicar bien, pero es mi problema.
Belum ada komentar yang diposting di sini
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan

Ikuti kami

Hak Cipta © 2009 - www.extendoffice.com. | Seluruh hak cipta. Dipersembahkan oleh ExtendOffice. | Peta Situs
Microsoft dan logo Office adalah merek dagang atau merek dagang terdaftar dari Microsoft Corporation di Amerika Serikat dan / atau negara lain.
Dilindungi oleh Sectigo SSL