Makro andmete teisaldamiseks või kopeerimiseks Exceli töövihikute vahel
See artikkel õpetab, kuidas kopeerida või edastada andmeid arvutustabelite vahel Microsoft Excelis VBA abil. Selles konkreetses näites õpetame teile ka, kuidas andmeid kombineerida lisapäringu abil. See ülesannete kombinatsioon võimaldab ühendada olemasolevate töölehtede andmeid lihtsamaks analüüsiks.
Makro andmete teisaldamiseks või kopeerimiseks Excelis
Võtame juhtumi, mille puhul peate kopeerima andmed ühest töövihikust ja muutma sisu teisele töövihikule. Selles näites on töövihikus 1 (allikate töövihik) 1 2 3 4 5 ja töövihik 2 on 6 7 8 9 0 .Pärast makro käivitamist peaks tööraamatus olema kaks numbrit 6 7 8 9 0 1 2 3 4 5 . Mõlema töövihiku formaat on sama.
Siin on makro, mis võib teie andmeid edastada ja lisada. (Veenduge, et olete lugenud koodi MÄRKUS ):
Sub CopyData ()Dim sBook_t kui string
Dim sBook_s kui string
Dim sSheet_t kui string
Dim sSheet_s kui string
Dim lMaxRows_t nii kaua
Dim lMaxRows_s nii kaua
Dim sMaxCol_s kui string
Dim sRange_t kui string
Dim sRange_s kui string
sBook_t = "Sihtandmed WB- Kopeeri andmed WB.xls-sse"
sBook_s = "Lähteandmed WB - andmete kopeerimine WB.xls'isse"
sSheet_t = "Target WB"
sSheet_s = "Allikas"
lMaxRows_t = töövihikud (sBook_t). lehed (sSheet_t) .Kellad (read.Count, "A"). End (xlUp).
lMaxRows_s = töövihikud (sBook_s). lehed (sSheet_s) .Kellad (read.Count, "A"). Lõpp (xlUp).
sMaxCol_s = Tööraamatud (sBook_s) .Leheküljed (sSheet_s) .Kellad (1, veerudCount) .End (xlToLeft) .Aadress
sMaxCol_s = Keskmine (sMaxCol_s, 2, InStr (2, sMaxCol_s, "$") - 2)
Kui (lMaxRows_t = 1) siis
sRange_t = "A1:" & sMaxCol_s & lMaxRows_s
sRange_s = "A1:" & sMaxCol_s & lMaxRows_s
Tööraamatud (sBook_t) .Leheküljed (sSheet_t) .Range (sRange_t) = töövihikud (sBook_s). Lehted (sSheet_s) .Range (sRange_s) .Väärtus
Veel üks
sRange_t = "A" & (lMaxRows_t + 1) & ":" & sMaxCol_s & (lMaxRows_t + lMaxRows_s - 1)
sRange_s = "A2:" & sMaxCol_s & lMaxRows_s
Tööraamatud (sBook_t) .Leheküljed (sSheet_t) .Range (sRange_t) = töövihikud (sBook_s). Lehted (sSheet_s) .Range (sRange_s) .Väärtus
' ###################### MÄRGE #################
„Järgmisel real tuleb kasutada ka järjekorranumbrit, mis tuleb ka kopeerimise asemel fikseerida
"Kui ei ole vajadust, kustutage allolev rida
Tööraamatud (sBook_t) .Leheküljed (sSheet_t) .Range ("A" ja lMaxRows_t) .Automaatne täitmise sihtkoht: = töövihikud (sBook_t). Lehed (sSheet_t) .Rida ("A" & lMaxRows_t & ": A" & (lMaxRows_t + lMaxRows_s - 1)), Tüüp: = xlFillSeries
Lõpeta kui
Lõpeta alam