Makro za premještanje ili kopiranje podataka između Excelovih radnih knjiga
Ovaj članak će vas naučiti kako kopirati ili prenositi podatke između proračunskih tablica u programu Microsoft Excel pomoću VBA. U ovom primjeru također ćemo vas naučiti kako kombinirati podatke pomoću dodatnog upita. Ova kombinacija zadataka omogućit će vam da kombinirate podatke u postojećim radnim listovima radi lakše analize.
Makro za premještanje ili kopiranje podataka u Excelu
Uzmimo slučaj u kojem trebate kopirati podatke iz jedne radne knjige, a zatim izmijeniti sadržaj u drugu radnu knjigu. U ovom primjeru jedna radna knjiga (izvorna radna knjiga) ima 1 2 3 4 5 i radnu knjigu dva ima 6 7 8 9 0 .Nakon pokretanja makronaredbe, radna knjiga dva mora imati 6 7 8 9 0 1 2 3 4 5 . Obje radne knjige su iste.
Ovdje je makronaredba koja može prenijeti i dodati vaše podatke. (Provjerite jeste li pročitali NAPOMENA u kodu):
Pod-kopija podataka ()Dim sBook_t kao niz
Dim sBook_s kao niz
Dim sSheet_t Kao niz
Dim sSheet_s kao niz
Dim lMaxRows_t As Long
Dim lMaxRows_s Long
Dim sMaxCol_s kao niz
Dim sRange_t As String
Dim sRange_s As String
sBook_t = "Ciljani podaci WB - Kopiraj podatke u WB.xls"
sBook_s = "Izvorni podaci WB - Kopiraj podatke u WB.xls"
sSheet_t = "Ciljani WB"
sSheet_s = "Izvor"
lMaxRows_t = Radne knjige (sBook_t). Sheets (sSheet_t) .Cells (Rows.Count, "A"). Kraj (xlUp) .Row
lMaxRows_s = Radne knjige (sBook_s). Sheets (sSheet_s) .Cells (Rows.Count, "A"). Kraj (xlUp) .Row
sMaxCol_s = Radne knjige (sBook_s) .Sheets (sSheet_s) .Cells (1, Columns.Count) .End (xlToLeft) .Address
sMaxCol_s = Srednja (sMaxCol_s, 2, InStr (2, sMaxCol_s, "$") - 2)
Ako (lMaxRows_t = 1) tada
sRange_t = "A1:" & sMaxCol_s & lMaxRows_s
sRange_s = "A1:" & sMaxCol_s & lMaxRows_s
Radne knjige (sBook_t) .Sheets (sSheet_t) .Range (sRange_t) = Radne knjige (sBook_s) .Sheets (sSheet_s) .Range (sRange_s) .Vrijednost
Drugo
sRange_t = "A" & (lMaxRows_t + 1) & ":" & sMaxCol_s & (lMaxRows_t + lMaxRows_s - 1)
sRange_s = "A2:" & sMaxCol_s & lMaxRows_s
Radne knjige (sBook_t) .Sheets (sSheet_t) .Range (sRange_t) = Radne knjige (sBook_s) .Sheets (sSheet_s) .Range (sRange_s) .Vrijednost
' ###################### BILJEŠKA #################
'sljedeći redovi koji će se koristiti za serijski broj će se također popraviti, umjesto kopiranja
'ako nema potrebe, izbrišite donju crtu
Radne knjige (sBook_t) .Sheets (sSheet_t) .Range ("A" & lMaxRows_t) .AutoFill odredište: = radne knjige (sBook_t) .Sheets (sSheet_t) .Range ("A" & lMaxRows_t & ": A" & (lMaxRows_t + lMaxRows_s - 1)), upišite: = xlFillSeries
Završi ako
Kraj pod