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