Makro tietojen siirtämiseksi Excel-työkirjojen välillä
Tässä artikkelissa kerrotaan, miten kopioit tai siirrät tietoja Microsoft Excelin laskentataulukoiden välillä VBA: n avulla. Tässä nimenomaisessa esimerkissä opetamme myös, miten yhdistää tietoja käyttämällä lisäkyselyä. Tämä tehtävien yhdistelmä mahdollistaa nykyisten työarkkien tietojen yhdistämisen helpommaksi analysoimiseksi.
Makro siirtää tai kopioida tietoja Excelissä
Otetaan tapaus, jossa sinun täytyy kopioida tietoja yhdestä työkirjasta ja muuttaa sisältöä toiseen työkirjaan. Tässä esimerkissä työkirjassa (lähdekoodikirja) on 1 2 3 4 5 ja työkirjassa kaksi 6 7 8 9 0 .Kun makro on suoritettu, kaksi työkirjaa pitäisi olla 6 7 8 9 0 1 2 3 4 5 . Molempien työkirjojen muodot ovat samat.
Tässä on makro, joka voi siirtää ja liittää tietojasi. (Varmista, että luet koodissa olevan HUOMAUTUKSEN ):
Sub CopyData ()Dim sBook_t merkkijonona
Dim sBook_s merkkijonoina
Dim sSheet_t merkkijonona
Dim sSheet_s Kuten merkkijono
Dim lMaxRows_t niin kauan
Dim lMaxRows_s niin kauan
Dim sMaxCol_s merkkijonoina
Dim sRange_t merkkijonona
Dim sRange_s merkkijonoina
sBook_t = "Kohdetiedot WB- Kopioi tiedot WB.xlsiin"
sBook_s = "Lähdetiedot WB - Kopioi tiedot WB.xlsiin"
sSheet_t = "Kohde WB"
sSheet_s = "Lähde"
lMaxRows_t = Työkirjat (sBook_t) .Sivut (sSheet_t) .Kohdat (rivit.Laskenta, "A"). Loppu (xlUp).
lMaxRows_s = Työkirjat (sBook_s) .arkit (sSheet_s) .Korut (rivit.Laskenta, "A"). Loppu (xlUp).
sMaxCol_s = Työkirjat (sBook_s) .Sivut (sSheet_s) .Kohdat (1, sarakkeet.Luku) .End (xlToLeft) .Address
sMaxCol_s = Mid (sMaxCol_s, 2, InStr (2, sMaxCol_s, "$") - 2)
Jos (lMaxRows_t = 1) sitten
sRange_t = "A1:" & sMaxCol_s & lMaxRows_s
sRange_s = "A1:" & sMaxCol_s & lMaxRows_s
Työkirjat (sBook_t) .Sivut (sSheet_t) .Range (sRange_t) = työkirjat (sBook_s) .arkit (sSheet_s) .Range (sRange_s).
muu
sRange_t = "A" & (lMaxRows_t + 1) & ":" & sMaxCol_s & (lMaxRows_t + lMaxRows_s - 1)
sRange_s = "A2:" & sMaxCol_s & lMaxRows_s
Työkirjat (sBook_t) .Sivut (sSheet_t) .Range (sRange_t) = työkirjat (sBook_s) .arkit (sSheet_s) .Range (sRange_s).
' ###################### HUOMAUTUS #################
”Sarjanumeron on käytettävä seuraavia rivejä, jotka on myös korjattava kopioinnin sijasta
'jos ei ole tarvetta, poista alla oleva rivi
Työkirjat (sBook_t) .Sivut (sSheet_t) .Vaihda ("A" & lMaxRows_t) .AutoFill-kohde: = työkirjat (sBook_t) .arkit (sSheet_t) .Vaihto ("A" & lMaxRows_t & ": A" & (lMaxRows_t + lMaxRows_s - 1)), Tyyppi: = xlFillSeries
Loppu Jos
Lopeta Sub