Excel VBA Kopioi alue toiselle arkille (8 helpointa tapaa)

  • Jaa Tämä
Hugh West

Aina kun tarvitset voit kopioida alueen yhdestä arkista toiseen arkistoon tai työkirjaan. Kopiointia ja liittämistä on erilaisia. Tämän artikkelin jälkeen saat tietää erilaisia tapoja käyttää Excel VBA: n kopioi alue toiseen arkistoon.

Selityksen elävöittämiseksi käytän esimerkkitietokokonaisuutta, joka edustaa tiettyjen henkilöiden henkilötietoja. Tietokokonaisuudessa on 4 saraketta. Nämä sarakkeet ovat seuraavat Etunimi, Sukunimi, Koko nimi, ja Sähköposti .

Lataa työkirja harjoitteluun

VBA-alueen kopiointi toiseen Sheet.xlsm:ään

8 tapaa Excel VBA kopioida alue toiselle arkille

1. Kopioi alue toiselle arkille muotoilulla

Aina kun haluat Kopioi alue yhdeltä arkilta toiselle arkille Muotoilu voit tehdä sen yksinkertaisesti käyttämällä VBA .

Tässä, minä... Kopioi vaihteluväli Tietoaineisto arkki WithFormat arkki.

Aloitetaan menettely,

Avaa ensin Kehittäjä Valitse välilehti>> Valitse Visual Basic

Voit myös käyttää ALT + F11 näppäimistö avataksesi VBA toimittaja.

Seuraavaksi se avaa uuden ikkunan nimeltä Microsoft Visual Basic for Applications.

Avaa sieltä Lisää >> Valitse Moduuli .

A Moduuli avautuu ja kirjoita seuraava koodi avattuun kenttään Moduuli .

 Sub Copy_Range_withFormat_ToAnother_Sheet() Range("B1:E10").Copy Worksheets("WithFormat").Range("B1:E10") End Sub 

Tässä ilmoitin, että Alimenettely Copy_Range_withFormat_ToAnother_Sheet (Kopioi_alue_muotoilulla_toAnother_Sheet)

Olen ottanut kantaman B1:E10 kopioida olemassa olevasta arkista arkin nimeen WithFormat .

Tässä käytin Kopioi menetelmällä kopioida valittu alue, Kopioi menetelmä kopioi minkä tahansa alueen Muotoilu .

Vihdoinkin, Tallenna koodi ja palaa takaisin laskentataulukkoon.

Avaa seuraavaksi Näytä tab>> alkaen Makrot >> Valitse Näytä makrot

➤ A valintaikkuna tulee esiin.

Nyt, alkaen Makron nimi valitse Copy_Range_withFormat_ToAnother_Sheet (Kopioi_alue_muotoilulla_toAnother_Sheet) valitse myös työkirja Makrot .

Vihdoinkin, Suorita valittu Makro .

Näin ollen se Kopioi valitun alueen kanssa Muotoilu valitsemalleni uudelle arkille ( WithFormat) .

2. VBA Kopioi alue toiselle arkille ilman muotoilua

On myös mahdollista Kopioi alue toiselle arkille ilman Muotoilu käyttämällä VBA .

Tässä, minä... Kopioi vaihteluväli Tietoaineisto arkki WithoutFormat arkki.

Aloitetaan menettely,

Avaa nyt Kehittäjä Valitse välilehti>> Valitse Visual Basic ( käyttää ALT + F11)

Seuraavaksi se avaa Microsoft Visual Basic for Applications.

Avaa sitten Lisää >> Valitse Moduuli .

A Moduuli avautuu ja kirjoita seuraava koodi avattuun kenttään Moduuli .

 Sub Copy_Range_WithoutFormat_Toanother_Sheet() Range("B1:E10").Copy Sheets("WithoutFormat").Range("B1").PasteSpecial _ Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub 

Tässä ilmoitin, että Alimenettely Copy_Range_WithoutFormat_Toanother_Sheet (Kopioi_alue_ilman_muotoilua_toiseen_arkkiin)

Olen ottanut kantaman B1:E10 kopioida olemassa olevasta arkista arkin nimeen arkin nimi WithoutFormat .

Tässä käytin Kopioi menetelmä valitun alueen kopioimiseksi, mutta mainitaan myös Liitä:=xlPasteValues vuonna PasteSpecial menetelmää niin, että se liittää vain Arvot valittua aluetta, ei muotoa.

Vihdoinkin, Tallenna koodi ja palaa takaisin laskentataulukkoon.

Avaa seuraavaksi Näytä tab>> alkaen Makrot >> Valitse Näytä makrot

➤ A valintaikkuna tulee esiin.

Nyt, alkaen Makron nimi valitse Copy_Range_WithoutFormat_Toanother_Sheet (Kopioi_alue_ilman_muotoilua_toiseen_arkkiin) ja valitse myös työkirja Makrot .

Vihdoinkin, Suorita valittu Makro .

Näin ollen se Kopioi valitun alueen vain Arvot ei Muotoilu .

3. Alueen kopioiminen toiselle arkille muotoilun ja sarakeleveyden avulla

Joskus saatat haluta Kopioi minkä tahansa valitun alueen sellaisenaan, sitä varten voitte Kopioi alue, jossa on Muotoilu ja Sarakkeen leveys .

Tässä, minä... Kopioi vaihteluväli Tietoaineisto arkki Muotoilu &; Sarakkeen leveys arkki.

Jos haluat nähdä, miten tehtävä tehdään käyttämällä VBA ,

Avaa ensin Kehittäjä Valitse välilehti>> Valitse Visual Basic

Voit myös käyttää ALT + F11 näppäimistö avataksesi VBA toimittaja.

Seuraavaksi se avaa uuden ikkunan Microsoft Visual Basic for Applications.

Siellä, avaa Lisää >> Valitse Moduuli .

A Moduuli avautuu ja kirjoita seuraava koodi avattuun kenttään Moduuli .

 Sub Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth() Range("B1:E10").Copy Destination:=Sheets("Format & ColumnWidth").Range("B1") Range("B1:E10").Copy Sheets("Format & ColumnWidth").Range("B1").PasteSpecial Paste:=xlPasteColumnWidths, _ Operaatio:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Tässä ilmoitin, että Alimenettely Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth (Kopioi_alue_to_Another_Sheet_with_FormatAndColumnWidth)

Olen ottanut etäisyyttä B1:E10 kopioida olemassa olevasta arkista kohdearkille nimi Muotoilu &; Sarakkeen leveys .

Tässä käytin Kopioi metodia kopioidakseni valitun alueen. Käytin myös metodia PasteSpecial menetelmä, jossa mainitsin Liitä:=xlPasteColumnWidths niin että se liittää valitun alueen sekä Muotoilu ja Sarakkeen leveys .

Vihdoinkin, Tallenna koodi ja palaa takaisin laskentataulukkoon.

Avaa seuraavaksi Näytä tab>> alkaen Makrot >> Valitse Näytä makrot

➤ A valintaikkuna tulee esiin.

Nyt, alkaen Makron nimi valitse Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth (Kopioi_alue_to_Another_Sheet_with_FormatAndColumnWidth) ja valitse myös työkirja Makrot .

Vihdoinkin, Suorita valittu Makro .

Tämän seurauksena se Kopioi valitun alueen kanssa Muotoilu ja Sarakkeen leveys .

4. VBA-alueen kopioiminen toiseen arkistoon kaavalla

Jos sinulla on tietokokonaisuudessasi jokin kaava, jonka haluat kopioida. Ei hätää! Voit kopioida alueen, joka sisältää seuraavat tiedot Kaava toiselle arkille, jolloin kaava säilyy ennallaan.

Tässä, minä... Kopioi vaihteluväli Tietoaineisto arkki WithFormula arkki

Aloitetaan menettely,

Avaa aluksi Kehittäjä Valitse välilehti>> Valitse Visual Basic ( voit myös käyttää ALT + F11 näppäimistö)

Seuraavaksi se avaa Microsoft Visual Basic for Applications.

Avaa sieltä Lisää >> Valitse Moduuli .

A Moduuli avautuu ja kirjoita seuraava koodi avattuun kenttään Moduuli .

 Sub Copy_Range_withFormula_ToAnother_Sheet() Range("B1:E10").Copy Sheets("WithFormula").Range("B1").PasteSpecial Paste:=xlPasteFormulas, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Tässä ilmoitin, että Alimenettely Copy_Range_withFormula_ToAnother_Sheet (Kopioi_alue_kaavalla_toAnother_Sheet)

Olen ottanut kantaman B1:E10 kopioida olemassa olevasta arkista kohdearkille nimi WithFormula .

Tässä käytin Kopioi metodia kopioidakseni valitun alueen. Käytin myös metodia PasteSpecial menetelmä, jossa mainitsin Liitä:=xlPasteFormulas niin että siinä on Kaavat yhdessä valitun alueen kanssa.

Vihdoinkin, Tallenna koodi ja palaa takaisin laskentataulukkoon.

Avaa sitten Näytä tab>> alkaen Makrot >> Valitse Näytä makrot

➤ A valintaikkuna tulee esiin.

Nyt, alkaen Makron nimi valitse Copy_Range_withFormula_ToAnother_Sheet (Kopioi_alue_kaavalla_toAnother_Sheet) valitse myös työkirja Makrot .

Vihdoinkin, Suorita valittu Makro .

Näin ollen se Kopioi kaikki valitut solualueet Kaavat .

Samanlaisia lukemia:

  • VBA-alueen siirtämisen käyttäminen (11 tapaa)
  • VBA kullekin Excelin alueen solulle (3 menetelmää)
  • VBA:n VBA-alueen käyttäminen Excelissä (5 ominaisuutta)

5. Kopioi alue AutoFit-toiminnolla toiselle arkille

Vaikka Kopiointi alueen toiselle arkille, voit myös käyttää komentoa AutoFit menetelmä VBA osoitteeseen AutoFit kopioitu alue uudessa arkissa.

Tässä, minä... Kopioi vaihteluväli Tietoaineisto arkki AutoFit arkki

Aloitetaan menettely,

Avaa ensin Kehittäjä Valitse välilehti>> Valitse Visual Basic

Voit myös käyttää ALT + F11 näppäimistö avataksesi VBA toimittaja.

Seuraavaksi se avaa ikkunan Microsoft Visual Basic for Applications.

Avaa sitten Lisää >> Valitse Moduuli .

A Moduuli avautuu ja kirjoita seuraava koodi avattuun kenttään Moduuli .

 Sub Copy_Range_withFormat_AutoFit() Sheets("Dataset").Select Range("B1:E10").Copy Sheets("AutoFit").Select Range("B1").Select ActiveSheet.Paste Columns("B:E").AutoFit End Sub 

Tässä ilmoitin, että Alimenettely Copy_Range_withFormat_AutoFit (Kopioi_alue_muotoilulla_AutoFit)

Ensin valitsin työarkin Tietoaineisto . Sitten otettu alue B1:E10 kopioida olemassa olevasta arkista kohdearkille nimeltä AutoFit .

Tässä käytin Kopioi menetelmällä kopioida valittu alue ja AutoFit menetelmä sovittaa annetut sarakkeet automaattisesti B:E .

Vihdoinkin, Tallenna koodi ja palaa takaisin laskentataulukkoon.

Avaa seuraavaksi Näytä tab>> alkaen Makrot >> Valitse Näytä makrot

➤ A valintaikkuna tulee esiin.

Nyt, alkaen Makron nimi valitse Copy_Range_withFormat_AutoFit (Kopioi_alue_muotoilulla_AutoFit) valitse myös työkirja Makrot .

Vihdoinkin, Suorita valittu Makro .

Näin ollen se Kopioi valitun alueen uudelle arkille ja myös AutoFit pylväät.

6. VBA-alueen kopioiminen toiseen työkirjaan

Halutessasi voit myös Kopioi alue yhdeltä arkilta toiselle arkille eri työkirjassa.

Tässä, minä... Kopioi vaihteluväli Tietoaineisto arkki Sheet1 of Kirja1 työkirja.

Aloitetaan menettely,

Avaa ensin Kehittäjä Valitse välilehti>> Valitse Visual Basic (y voit myös käyttää ALT + F11 näppäimistö)

Sitten se avaa Microsoft Visual Basic for Applications.

Avaa seuraavaksi Lisää >> Valitse Moduuli .

A Moduuli avautuu ja kirjoita seuraava koodi avattuun kenttään Moduuli .

 Sub Copy_Range_WithFormat_Toanother_WorkBook() Workbooks("Excel VBA Copy Range to Another Sheet.xlsm").Worksheets("Dataset").Range("B3:E10"). _ Copy Workbooks("Book1").Worksheets("Sheet1").Range("B3") End Sub 

Tässä ilmoitin, että Alimenettely Copy_Range_WithFormat_Toanother_WorkBook (Kopioi_alue_muotoilulla_toiseen_työkirjaan)

Olen ottanut kantaman B3:E10 from arkki nimi Tietoaineisto kopioida olemassa olevasta arkista uuden työkirjan nimeen. Kirja1 ja arkin nimi Sheet1 .

Tässä käytin Kopioi menetelmällä kopioida valittu alue uuteen työkirjaan.

Vihdoinkin, Tallenna koodi ja palaa takaisin laskentataulukkoon.

Avaa seuraavaksi Näytä tab>> alkaen Makrot >> Valitse Näytä makrot

➤ A valintaikkuna tulee esiin.

Nyt, alkaen Makron nimi valitse Copy_Range_WithFormat_Toanother_WorkBook (Kopioi_alue_Muoto_toiseen_Työkirjaan) valitse myös työkirja Makrot .

Vihdoinkin, Suorita valittu Makro .

Nyt se Kopioi valitun alueen Tietoaineisto arkki toiseen työkirjaan.

7. Alueen kopioiminen toisen arkin viimeiselle riville

Joka tapauksessa, jos haluat Kopioi alueen toiselle arkille tietystä solusta tai viimeisestä solusta, voit tehdä sen käyttämällä komentoa VBA .

Ennen kuin aloitan menettelyn, haluan kertoa teille, että olen ottanut kaksi uutta arkkia, jotka koostuvat... Koko nimi, sähköpostiosoite, ja Osoite .

Tarkkaillaan Dataset2 arkki ensin.

Tässä on Viimeisen solun alapuolella arkki.

Tässä, minä... Kopioi vaihteluväli Dataset2 arkki Viimeisen solun alapuolella vaan ensimmäisestä tyhjästä solusta.

Avaa aluksi Kehittäjä Valitse välilehti>> Valitse Visual Basic

Seuraavaksi se avaa Microsoft Visual Basic for Applications.

Avaa sitten Lisää >> Valitse Moduuli .

A Moduuli avautuu ja kirjoita seuraava koodi avattuun kenttään Moduuli .

 Sub Copy_Range_BelowLastCell_AnotherSheets() Sheets("Dataset2").Select lr = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row Range("A2:C" & lr).Copy Sheets("Below Last Cell").Select lrAnotherSheet = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row Cells(lrAnotherSheet + 1, 1).Select ActiveSheet.Paste Columns("A:C").AutoFit EndSub 

Tässä ilmoitin, että Alimenettely Copy_Range_BelowLastCell_AnotherSheets_kopioi_Range_BelowLastCell_AnotherSheets

Ensin valitsin arkin Dataset2 ja käytti sitten Rivi menetelmä laskea Viimeinen rivi ja piti lasketun rivin lr .

Sitten otetaan alue A2:C & lr kopioida olemassa olevasta arkista kohdearkille nimi Viimeisen solun alapuolella .

Jälleen kerran käytettiin Rivi menetelmä laskea Viimeinen rivi toisesta arkista nimeltä Viimeisen solun alapuolella ja piti lasketun rivin lrAnotherSheet .

Tässä käytin Kopioi menetelmällä kopioida valittu alue ja AutoFit menetelmä sovittaa annetut sarakkeet automaattisesti A:C .

Vihdoinkin, Tallenna koodi ja palaa takaisin laskentataulukkoon.

Avaa seuraavaksi Näytä tab>> alkaen Makrot >> Valitse Näytä makrot

➤ A valintaikkuna tulee esiin.

Nyt, alkaen Makron nimi valitse Copy_Range_BelowLastCell_AnotherSheets_kopioi_Range_BelowLastCell_AnotherSheets valitse myös työkirja Makrot .

Vihdoinkin, Suorita valittu Makro .

Näin ollen se Kopioi valitun alueen ja Liitä se toisen arkin viimeiseltä riviltä.

8. VBA-alueen kopioiminen toisen työkirjan viimeiselle riville

Jos haluat Kopioi alueen toisen työkirja-arkin viimeiselle riville, voit myös käyttää komentoa VBA .

Tässä, minä... Kopioi vaihteluväli Dataset2 arkki Sheet1 of Kirja2 vaan ensimmäisestä muusta kuin tyhjästä solusta.

Aloita menettely,

Avaa ensin Kehittäjä Valitse välilehti>> Valitse Visual Basic

Voit myös käyttää ALT + F11 näppäimistö avataksesi VBA toimittaja.

Seuraavaksi se avaa uuden ikkunan Microsoft Visual Basic for Applications.

Avaa sieltä Lisää >> Valitse Moduuli .

A Moduuli avautuu ja kirjoita seuraava koodi avattuun kenttään Moduuli .

 Sub Copy_Range_BelowLastCell_To_Another_Workbook() Dim wsCopy As Worksheet Dim wsDestination As Worksheet Dim lCopyLastRow As Long Dim lDestLastRow As Long Set wsCopy = Workbooks("Excel VBA Copy Range to Another Sheet.xlsm").Worksheets("Dataset2") Set wsDestination = Workbooks("Book2.xlsx").Worksheets("Sheet1") lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row lDestLastRow =wsDestination.Cells(wsDestination.Rows.Count, "A").End(xlUp).Offset(1).Row wsCopy.Range("A2:C" & lCopyLastRow).Copy wsDestination.Range("A" & lDestLastRow) End Sub 

Tässä ilmoitin, että Alimenettely Copy_Range_BelowLastCell_To_Another_Workbook (Kopioi_Range_BelowLastCell_To_Another_Workbookiin) jossa wsCopy ja wsDestination ovat Työtaulukko tyyppi, lCopyLastRow ja lDestLastRow ovat Pitkä tyyppi.

Ensinnäkin, käytetty Aseta asettaa muuttujat kopioitavalle arkille ja kohdearkille.

Seuraavaksi käytettiin Rivi menetelmä viimeisen rivin löytämiseksi sarakkeen tietojen perusteella. A kopiointialueella.

Jälleen kerran käytettiin Rivi menetelmä ensimmäisen tyhjän rivin löytämiseksi sarakkeen tietojen perusteella. A kohdealueella käytetään myös Offset siirtyä yhden kiinteistön verran alaspäin.

Vihdoinkin, Kopioitu tiedot Dataset2 arkki Excel VBA Kopioi alue toiseen Sheet.xlsm:ään. työkirjaan määränpäähän Sheet1 työkirjan Kirja2.xlsx .

Nyt, Tallenna koodi ja palaa takaisin laskentataulukkoon.

Avaa seuraavaksi Näytä tab>> alkaen Makrot >> Valitse Näytä makrot

➤ A valintaikkuna tulee esiin.

Nyt, alkaen Makron nimi valitse Copy_Range_BelowLastCell_To_Another_Workbook (Kopioi_Range_BelowLastCell_To_Another_Workbookiin) valitse myös työkirja Makrot .

Vihdoinkin, Suorita valittu Makro .

Näin ollen se Kopioi valitun alueen nykyisestä arkista toisen työkirjan viimeiselle riville.

Harjoitusosio

Olen antanut työkirjassa harjoitusarkin, jolla voit harjoitella näitä selitettyjä Excelin tapoja. VBA kopioida alue toiselle arkille.

Päätelmä

Tässä artikkelissa olen selittänyt 8 erilaista helppoa ja nopeaa tapaa käyttää Exceliä. VBA kopioi alue toiselle arkille. Nämä eri tavat auttavat sinua kopioimaan alueen yhdeltä arkilta toiselle ja myös yhdeltä arkilta toiseen työkirjaan. Viimeisenä mutta ei vähäisimpänä, jos sinulla on minkäänlaisia ehdotuksia, ideoita ja palautetta, kommentoi vapaasti alla.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.