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

Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä