Misalnya Anda memiliki 100 lembar data dan semua lembar kerja memiliki struktur yang sama. Yang kami inginkan adalah mendapatkan semua data beberapa lembar kerja dikonsolidasikan ke dalam satu lembar kerja. Lakukan dalam hitungan detik dengan kode berikut Show
Catatan. Kode ini mengasumsikan bahwa SEMUA lembar kerja memiliki struktur bidang yang sama; . Kode menyalin semua baris menjadi satu lembar kerja baru yang disebut Master. Sub CopyFromWorksheets() Dim wrk As Workbook 'Workbook object - Always good to work with object variables Dim sht As Worksheet 'Object for handling worksheets in loop Dim trg As Worksheet 'Master Worksheet Dim rng As Range 'Range object Dim colCount As Integer 'Column count in tables in the worksheets Set wrk = ActiveWorkbook 'Working in active workbook For Each sht In wrk.Worksheets If sht.Name = "Master" Then MsgBox "There is a worksheet called as 'Master'." & vbCrLf & _ "Please remove or rename this worksheet since 'Master' would be" & _ "the name of the result worksheet of this process.", vbOKOnly + vbExclamation, "Error" Exit Sub End If Next sht 'We don't want screen updating Application.ScreenUpdating = False 'Add new worksheet as the last worksheet Set trg = wrk.Worksheets.Add(After:=wrk.Worksheets(wrk.Worksheets.Count)) 'Rename the new worksheet trg.Name = "Master" 'Get column headers from the first worksheet 'Column count first Set sht = wrk.Worksheets(1) colCount = sht.Cells(1, 255).End(xlToLeft).Column 'Now retrieve headers, no copy&paste needed With trg.Cells(1, 1).Resize(1, colCount) .Value = sht.Cells(1, 1).Resize(1, colCount).Value 'Set font as bold .Font.Bold = True End With 'We can start loop For Each sht In wrk.Worksheets 'If worksheet in loop is the last one, stop execution (it is Master worksheet) If sht.Index = wrk.Worksheets.Count Then Exit For End If 'Data range in worksheet - starts from second row as first rows are the header rows in all worksheets Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End(xlUp).Resize(, colCount)) 'Put data into the Master worksheet trg.Cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value Next sht 'Fit the columns in Master worksheet trg.Columns.AutoFit 'Screen updating should be activated Application.ScreenUpdating = True End Sub Cara Penggunaan
Unduh File Contoh. Konsolidasikan Beberapa Lembar Kerja. xls Baca juga
Bagikan ini
TerkaitGunakan VBA untuk menggabungkan data dari beberapa sheet menjadi satu spreadsheet. Ini adalah panduan langkah demi langkah tentang bagaimana saya mencapai ini Saya melakukan hari terakhir kursus pelatihan VBA 3 hari dan pada hari ini saya mengambil kesempatan untuk menjawab masalah tertentu dari klien. (Yang notabene adalah SMC Pneumatics yang berbasis di Milton Keynes) Masalah Konsolidasi DataPertanyaan mereka adalah. "Bagaimana kita, menggunakan VBA, menggabungkan data dari banyak spreadsheet?". Ketika saya menanyai mereka tentang persyaratan mereka untuk prosedur VBA mereka, itu melibatkan hal-hal berikut
Jadi kami mengatasi masalah ini selama jam makan siang dan meskipun ini mungkin bukan cara yang paling efisien untuk menyelesaikannya, terutama dengan ribuan dokumen, tentu saja lebih baik daripada harus melakukannya secara manual. Menulis Kode Konsolidasi VBAFungsi openMyFiles()Dua fungsi, saya gunakan, untuk mengatasi masalah ini. Sebenarnya satu fungsi dan satu sub-prosedur. Fungsi openMyFiles() dirancang untuk mengulang berbagai file Excel di folder yang dipilih, yang lainnya hanya untuk mendapatkan folder yang dipilih. Sebelum memulai, Anda perlu mengunduh file latihan. Berisi 4 file data sampel, mana yang harus Anda gunakan untuk latihan ini
Sekarang jika Anda ingin melihat file yang sudah selesai maka Anda dipersilakan untuk mengunduhnya. Juga jika Anda ingin mendapatkan pemahaman yang komprehensif tentang VBA maka pesan sendiri kursus pelatihan VBA 3 Hari Bagaimana cara menggabungkan data di Excel menggunakan makro?Menulis Kode Konsolidasi VBA . Buka file Excel Baru dan simpan file sebagai sebagai konsolidasi_laporan. . Tampilkan Tab Pengembang. . Pada Tab Pengembang klik Ikon Visual Basic di sebelah kiri untuk membuka Editor Visual Basic Pastikan Anda dapat melihat jendela Project Explorer di sebelah kiri Bagaimana cara menggabungkan beberapa lembar kerja menjadi satu di VBA?Menggabungkan semua lembar buku kerja aktif menjadi satu lembar dengan VBA . Aktifkan buku kerja yang ingin Anda gabungkan semua lembarnya, lalu tekan tombol Alt + F11 untuk membuka jendela Microsoft Visual Basic for Applications Di jendela popping, klik Sisipkan > Modul untuk membuat skrip Modul baru Salin kode di bawah ini dan tempelkan ke skrip Bisakah konsolidasi data diterapkan pada banyak lembar?Untuk meringkas dan melaporkan hasil dari lembar kerja terpisah, Anda dapat menggabungkan data dari setiap lembar ke dalam lembar kerja master . Lembar dapat berada di buku kerja yang sama dengan lembar kerja utama, atau di buku kerja lainnya.
Bagaimana cara mengotomatiskan konsolidasi di Excel?Langkah-Langkah Mengotomatiskan Konsolidasi Data di Excel . 📌 Langkah 1. Siapkan Sumber Data 📌 Langkah 2. Gunakan Fitur Konsolidasi 📌 Langkah 3. Pilih Fungsi & Tambahkan Referensi 📌 Langkah 4. Konsolidasi Otomatis 📌 Langkah 5. Amati Hasilnya |