Makro untuk Pindah atau Salin Data Antara Buku Kerja Excel
Artikel ini akan mengajar anda cara menyalin atau memindahkan data antara spreadsheet di Microsoft Excel menggunakan VBA. Dalam contoh khusus ini, kami juga akan mengajar anda cara menggabungkan data dengan menggunakan pertanyaan tambahan. Gabungan tugas ini akan membolehkan anda menggabungkan data dalam lembaran kerja sedia ada untuk analisis yang lebih mudah.
Makro untuk Pindah atau Salin Data dalam Excel
Mari ambil kes di mana anda perlu menyalin data dari satu buku kerja dan kemudian meminda kandungan ke buku kerja lain. Dalam contoh ini, satu buku kerja (buku kerja sumber) mempunyai 1 2 3 4 5 dan buku kerja dua mempunyai 6 7 8 9 0 .Setelah menjalankan makro, buku kerja dua harus mempunyai 6 7 8 9 0 1 2 3 4 5 . Format kedua buku kerja adalah sama.
Berikut adalah makro yang boleh memindahkan dan menambah data anda. (Pastikan anda membaca NOTA dalam kod):
Sub CopyData ()Dim sBook_t Sebagai String
Dim sBook_s As String
Dim sSheet_t Sebagai String
Dim sSheet_s Sebagai String
Dim lMaxRows_t As Long
Dim lMaxRows_s As Long
Dim sMaxCol_s Sebagai String
Dim sRange_t Sebagai String
Dim sRange_s Sebagai String
sBook_t = "Data Sasaran WB- Salin data ke WB.xls"
sBook_s = "Data Sumber WB - Salin data ke WB.xls"
sSheet_t = "Target WB"
sSheet_s = "Sumber"
lMaxRows_t = Buku kerja (sBook_t) .Sheets (sSheet_t) .Cells (Rows.Count, "A"). Akhir (xlUp) .Row
lMaxRows_s = Buku kerja (sBook_s) .Sheets (sSheet_s) .Cells (Rows.Count, "A"). Akhir (xlUp) .Row
sMaxCol_s = Buku kerja (sBook_s) .Sheets (sSheet_s) .Cells (1, Columns.Count) .End (xlToLeft) .Address
sMaxCol_s = Mid (sMaxCol_s, 2, InStr (2, sMaxCol_s, "$") - 2)
Jika (lMaxRows_t = 1) Kemudian
sRange_t = "A1:" & sMaxCol_s & lMaxRows_s
sRange_s = "A1:" & sMaxCol_s & lMaxRows_s
Buku kerja (sBook_t) .Sheets (sSheet_t) .Range (sRange_t) = Buku kerja (sBook_s) .Sheets (sSheet_s) .Range (sRange_s) .Value
Lain
sRange_t = "A" & (lMaxRows_t + 1) & ":" & sMaxCol_s & (lMaxRows_t + lMaxRows_s - 1)
sRange_s = "A2:" & sMaxCol_s & lMaxRows_s
Buku kerja (sBook_t) .Sheets (sSheet_t) .Range (sRange_t) = Buku kerja (sBook_s) .Sheets (sSheet_s) .Range (sRange_s) .Value
' ###################### CATATAN #################
'garisan berikut akan digunakan untuk nombor bersiri yang akan ditetapkan juga, bukannya disalin
'jika tidak perlu, kemudian padamkan baris di bawah
Objektif: = Buku kerja (sBook_t) .Sheets (sSheet_t) .Pengurus ("A" & lMaxRows_t & ": A" & (lMaxRows_t + lMaxRows_s - 1)), Taip: = xlFillSeries
Akhir Jika
Sub Akhir