Makro presunúť alebo kopírovať údaje medzi zošitmi programu Excel

Tento článok vás naučí, ako kopírovať alebo prenášať dáta medzi tabuľkami v programe Microsoft Excel pomocou VBA. V tomto konkrétnom príklade vás tiež naučíme kombinovať údaje pomocou pripojeného dotazu. Táto kombinácia úloh vám umožní skombinovať údaje v existujúcich pracovných hárkoch pre ľahšiu analýzu.

Makro presunúť alebo kopírovať údaje v programe Excel

Zoberme si prípad, v ktorom budete potrebovať kopírovať dáta z jedného zošita a potom ich upravovať do iného zošita. V tomto príklade má zošit jeden (zdrojový zošit) 1 2 3 4 5 a zošit 2 má 6 7 8 9 0 .

Po spustení makra by mal mať zošit dva 6 7 8 9 0 1 2 3 4 5 . Formáty oboch zošitov sú rovnaké.

Toto je makro, ktoré by mohlo prenášať a pridávať údaje. (Uistite sa, že ste si prečítali POZNÁMKA v kóde):

 Sub CopyData ()

Dim sBook_t As String

Dim sBook_s ako reťazec

Dim sSheet_t As String

Dim sSheet_s As String

Dim lMaxRows_t As Long

Dim lMaxRows_s As Long

Dim sMaxCol_s As String

Dim sRange_t As String

Dim sRange_s As String

sBook_t = "Cieľové údaje WB- Kopírovať údaje do WB.xls"

sBook_s = "Zdrojové údaje WB - kopírovanie údajov do WB.xls"

sSheet_t = "Cieľová WB"

sSheet_s = "Zdroj"

lMaxRows_t = Pracovné zošity (sBook_t) .Šablóny (sSheet_t) .Cells (Rows.Count, "A") End (xlUp) .Row

lMaxRows_s = Pracovné zošity (sBook_s) .Šablóny (sSheet_s) .Cells (Rows.Count, "A") End (xlUp) .Row

sMaxCol_s = Pracovné zošity (sBook_s) .Šablóny (sSheet_s) .Cells (1, Columns.Count) .End (xlToLeft) .Address

sMaxCol_s = Stred (sMaxCol_s, 2, InStr (2, sMaxCol_s, "$") - 2)

Ak (lMaxRows_t = 1) Potom

sRange_t = "A1:" & sMaxCol_s & lMaxRows_s

sRange_s = "A1:" & sMaxCol_s & lMaxRows_s

Pracovné zošity (sBook_t) .Šablóny (sSheet_t) .Range (sRange_t) = Pracovné zošity (sBook_s) .Šablóny (sSheet_s) .Range (sRange_s).

inak

sRange_t = "A" & (lMaxRows_t + 1) & ":" & sMaxCol_s & (lMaxRows_t + lMaxRows_s - 1)

sRange_s = "A2:" & sMaxCol_s & lMaxRows_s

Pracovné zošity (sBook_t) .Šablóny (sSheet_t) .Range (sRange_t) = Pracovné zošity (sBook_s) .Šablóny (sSheet_s) .Range (sRange_s).

' ###################### POZNÁMKA #################

„namiesto sériového čísla sa majú namiesto kopírovania použiť nasledujúce riadky

'ak nie je potreba, potom odstráňte riadok nižšie

Pracovné zošity (sBook_t) .Šablóny (sSheet_t) .Range ("A" & lMaxRows_t) .AutoFill Cieľ: = Pracovné zošity (sBook_t) .Šablóny (sSheet_t). - 1)), Typ: = xlFillSeries

Koniec Ak

End Sub

Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy