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

Prethodni Članak Sljedeći Članak

Top Savjeta