Saat bekerja dengan sumber data yang bervariasi, Anda mungkin sering kesulitan untuk mengompilasi beberapa buku kerja dan lembar kerja sebelum sampai pada satu bagian data akhir. Bayangkan situasi di mana Anda memiliki beberapa ratus buku kerja untuk digabungkan bahkan sebelum Anda dapat memulai hari Anda.
Tidak ada yang ingin menghabiskan waktu berjam-jam mengerjakan sumber yang berbeda, membuka setiap buku kerja, menyalin dan menempelkan data dari berbagai lembar, sebelum akhirnya membuat satu buku kerja gabungan. Bagaimana jika makro VBA dapat melakukan ini untuk Anda?
Dengan panduan ini, Anda dapat membuat kode makro Excel VBA Anda sendiri untuk menggabungkan beberapa buku kerja, semuanya dalam hitungan menit (jika file datanya banyak).
Prasyarat untuk Membuat Kode Makro VBA Anda Sendiri
Anda memerlukan satu buku kerja untuk menampung kode VBA, sedangkan buku kerja data sumber lainnya terpisah. Selain itu, buat satu buku kerja Konsolidasi untuk menyimpan data gabungan dari semua buku kerja Anda.
Buat folder Konsolidasi di lokasi pilihan Anda untuk menyimpan semua buku kerja sumber Anda. Ketika makro berjalan, itu akan beralih melalui setiap buku kerja yang disimpan dalam folder ini, menyalin konten dari berbagai lembar, dan menempatkannya di buku kerja Konsolidasi.
Membuat Kode VBA Excel Anda Sendiri
Setelah prasyarat selesai, sekarang saatnya untuk mempelajari kode dan mulai meretas dasar-dasarnya untuk menyesuaikannya dengan kebutuhan Anda.
Terkait: Fitur Lanjutan Microsoft Excel yang Harus Anda Ketahui
tekan Alt+F11 di Excel untuk membuka editor kode makro VBA. Rekatkan kode yang tertulis di bawah ini dan simpan file sebagai buku kerja berkemampuan Makro (.xlsm perpanjangan).
Sub file terbuka()
'deklarasikan variabel yang digunakan dalam kode VBA
Redupkan MyFolder As String, MyFile As String, wbmain As Workbook, lastrow As Long
'nonaktifkan fungsi ini untuk meningkatkan pemrosesan kode
Dengan Aplikasi
.DisplayAlerts = Salah
.ScreenUpdating = Salah
Berakhir dengan'ubah jalur folder tempat file Anda akan disimpan
MyFolder = InputBox("Masukkan jalur folder Konsolidasi") & "\"
'tentukan referensi folder dalam variabel makro
File Saya = Dir (Folder Saya)
'buka satu lingkaran untuk menelusuri setiap buku kerja individu yang disimpan dalam folder
Lakukan Sementara Len (File Saya) > 0
'aktifkan buku kerja Konsolidasi
Windows("Konsolidasi").Aktifkan
'hitung baris terakhir yang terisi
Rentang("a1048576").Pilih
Pilihan. Akhir (xlUp).Pilih
Sel aktif. Offset (1, 0).Pilih'buka buku kerja pertama di dalam folder Konsolidasi
Buku kerja. Buka Nama File:=Folder Saya & File Saya
Windows (File Saya). Aktifkan
'beralih melalui setiap lembar dalam buku kerja untuk menyalin data
Redupkan Sebagai Lembar Kerja
Untuk Setiap ws Dalam Lembarws. Mengaktifkan
ws. AutoFilterMode = Salah'abaikan header dan salin data dari baris 2
Jika Sel (2, 1) = "" Kemudian GoTo 1Pergi ke 10
1: Selanjutnya
10: Range("a2:az20000").Copy
Windows("Konsolidasi").Aktifkan
'tempelkan konten yang disalin
Lembar aktif. Tempel
Windows (File Saya). Aktifkan
'tutup buku kerja yang terbuka setelah data ditempelkan
Buku Kerja Aktif. Menutup
'kosongkan cache untuk menyimpan nilai buku kerja berikutnya
File Saya = Dir()
'buka file berikutnya di folder
Lingkaran
'aktifkan fungsi yang dinonaktifkan untuk penggunaan di masa mendatang
Dengan Aplikasi
.DisplayAlerts = Benar
.ScreenUpdating = Benar
Berakhir dengan
Akhir Sub
Kode VBA Dijelaskan
Bagian pertama dari kode adalah mendefinisikan subrutin, yang menampung semua kode VBA Anda. Definisikan subrutin dengan sub, diikuti dengan nama kode. Nama sub bisa apa saja; idealnya, Anda harus menyimpan nama yang relevan dengan kode yang akan Anda tulis.
Terkait: Situs Web dan Blog untuk Mempelajari Tip dan Trik Excel
Excel VBA memahami variabel yang dibuat pengguna dan tipe data terkait yang dideklarasikan dengan redup (dimensi).
Untuk meningkatkan kecepatan pemrosesan kode Anda, Anda dapat mematikan pembaruan layar dan menekan semua peringatan, karena itu memperlambat eksekusi kode.
Pengguna akan diminta untuk jalur folder tempat file data disimpan. Sebuah loop dibuat untuk membuka setiap buku kerja yang disimpan di dalam folder, menyalin data dari setiap lembar, dan menambahkannya ke Konsolidasi buku kerja.
Buku kerja Konsolidasi diaktifkan sehingga Excel VBA dapat menghitung baris terakhir yang diisi. Sel terakhir dalam lembar kerja dipilih, dan baris terakhir dihitung dalam buku kerja menggunakan fungsi offset. Ini sangat berguna, ketika makro mulai menambahkan data dari file sumber.
Saat loop membuka file sumber pertama, filter dihapus dari setiap lembar (jika ada), dan data mulai dari A2 hingga AZ20000 akan disalin dan ditempelkan ke Konsolidasi buku kerja.
Proses ini diulang sampai semua lembar buku kerja ditambahkan di dalam buku kerja master.
Terkait: Kursus Online Terbaik untuk Menguasai Excel Lanjut
Akhirnya, file sumber ditutup setelah semua data ditempelkan. Buku kerja berikutnya dibuka sehingga makro VBA dapat mengulangi langkah yang sama untuk kumpulan file berikutnya.
Loop dikodekan untuk dijalankan hingga semua file diperbarui secara otomatis di buku kerja master.
Kustomisasi Berbasis Pengguna
Terkadang, Anda tidak ingin khawatir tentang perintah bawaan, terutama jika Anda adalah pengguna akhir. Jika Anda lebih suka membuat hardcode jalur folder Konsolidasi dalam kode, Anda dapat mengubah bagian kode ini:
MyFolder = InputBox("Masukkan jalur folder Konsolidasi") & "\"
Ke:
MyFolder = “Jalur folder” & "\"
Selain itu, Anda juga dapat mengubah referensi kolom, karena langkah tersebut tidak disertakan dalam kode ini. Cukup ganti referensi kolom akhir dengan nilai kolom yang terakhir diisi (AZ, dalam hal ini). Perlu Anda ingat bahwa baris terakhir yang terisi dihitung melalui kode makro, jadi Anda hanya perlu mengubah referensi kolom.
Untuk memaksimalkan makro ini, Anda bisa menggunakannya hanya untuk menggabungkan buku kerja dalam format yang sama. Jika strukturnya berbeda, Anda tidak dapat menggunakan makro VBA ini.
Mengonsolidasikan Beberapa Buku Kerja Menggunakan Excel VBA Macro
Membuat dan memodifikasi kode Excel VBA relatif mudah, terutama jika Anda memahami beberapa nuansa di dalam kode. VBA secara sistematis berjalan melalui setiap baris kode dan mengeksekusinya baris demi baris.
Jika Anda membuat perubahan pada kode, Anda harus memastikan bahwa Anda tidak mengubah urutan kode, karena itu akan mengganggu eksekusi kode.
Jadikan pengelolaan data menjadi mudah dengan makro Excel ini.
Baca Selanjutnya
- Pemrograman
- Pemrograman
- Microsoft Excel
Gaurav Siyal memiliki dua tahun pengalaman menulis, menulis untuk serangkaian perusahaan pemasaran digital dan dokumen siklus hidup perangkat lunak.
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Klik di sini untuk berlangganan