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

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited