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

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama