Excel VBA Kopírovanie rozsahu do iného listu (8 najjednoduchších spôsobov)

  • Zdieľajte To
Hugh West

Kedykoľvek potrebujete, môžete skopírovať rozsah z jedného hárku do iného hárku alebo zošita. Existujú rôzne typy kopírovania a vkladania. Po tomto článku sa zoznámite s rôznymi spôsobmi použitia Excel VBA kopírovať rozsah do iného hárku.

Na oživenie vysvetlenia použijem vzorový súbor údajov, ktorý predstavuje osobné údaje konkrétnych osôb. Súbor údajov má 4 stĺpce. Tieto stĺpce sú Meno, priezvisko, celé meno, a E-mail .

Stiahnite si pracovný zošit na precvičovanie

VBA Kopírovanie rozsahu do iného listu.xlsm

8 spôsobov, ako skopírovať rozsah programu Excel VBA do iného hárku

1. Kopírovanie rozsahu do iného hárku s formátom

Kedykoľvek chcete Kopírovať rozsah od jedného listu k druhému listu s Formát môžete to urobiť jednoducho pomocou VBA .

Tu budem Kopírovať rozsah od Súbor údajov hárku na WithFormat list.

Začnime postup,

Najprv otvorte Vývojár karta>> vybrať Visual Basic

Môžete tiež použiť ALT + F11 klávesnice na otvorenie VBA redaktor.

Potom sa otvorí nové okno s názvom Microsoft Visual Basic pre aplikácie.

Odtiaľ otvorte Vložte >> vybrať Modul .

A Modul sa otvorí a do otvoreného okna zadajte nasledujúci kód Modul .

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

Tu som vyhlásil. Dílčí postup Copy_Range_withFormat_ToAnother_Sheet

Vzal som si rozsah B1:E10 kopírovanie z existujúceho hárku do názvu hárku WithFormat .

Tu som použil Kopírovať na skopírovanie vybraného rozsahu, Kopírovať metóda skopíruje akýkoľvek rozsah s Formát .

Nakoniec, Uložiť kód a vráťte sa na pracovný hárok.

Potom otvorte Zobraziť karta>> od Makrá >> vybrať Zobraziť makrá

➤ A dialógové okno sa objaví.

Teraz z Názov makra vyberte Copy_Range_withFormat_ToAnother_Sheet vyberte aj zošit v rámci Makrá v .

Nakoniec, Spustiť vybrané Makro .

Preto bude Kopírovať vybraný rozsah s Formát do nového listu, ktorý som vybral ( WithFormat) .

2. VBA Kopírovanie rozsahu do iného listu bez formátovania

Je tiež možné Kopírovať rozsah na iný hárok bez Formát pomocou VBA .

Tu budem Kopírovať rozsah od Súbor údajov hárku na WithoutFormat list.

Začnime postup,

Teraz otvorte Vývojár karta>> vybrať Visual Basic ( používať ALT + F11)

Potom sa otvorí Microsoft Visual Basic pre aplikácie.

Potom otvorte Vložte >> vybrať Modul .

A Modul sa otvorí a do otvoreného okna zadajte nasledujúci kód Modul .

 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 

Tu som vyhlásil. Dílčí postup Copy_Range_WithoutFormat_Toanother_Sheet

Vzal som si rozsah B1:E10 kopírovanie z existujúceho hárku do názvu hárku WithoutFormat .

Tu som použil Kopírovať metódu na kopírovanie vybraného rozsahu, ale aj spomínanú Vložiť:=xlPasteValues v PasteSpecial metódu tak, aby sa vložila iba Hodnoty vybraného rozsahu, nie formátu.

Nakoniec, Uložiť kód a vráťte sa na pracovný hárok.

Potom otvorte Zobraziť karta>> od Makrá >> vybrať Zobraziť makrá

➤ A dialógové okno sa objaví.

Teraz z Názov makra vyberte Copy_Range_WithoutFormat_Toanother_Sheet a tiež vyberte zošit v rámci Makrá v .

Nakoniec, Spustiť vybrané Makro .

Takto bude Kopírovať vybraný rozsah iba s Hodnoty nie Formát .

3. Kopírovanie rozsahu na iný list s formátom a šírkou stĺpca

Niekedy môžete chcieť Kopírovať ľubovoľný vybraný rozsah, na čo môžete Kopírovať rozsah s Formát a Šírka stĺpca .

Tu budem Kopírovať rozsah od Súbor údajov hárku na Formát & Šírka stĺpca list.

Ak chcete zobraziť postup na vykonanie úlohy pomocou VBA ,

Najprv otvorte Vývojár karta>> vybrať Visual Basic

Môžete tiež použiť ALT + F11 klávesnice na otvorenie VBA redaktor.

Potom sa otvorí nové okno Microsoft Visual Basic pre aplikácie.

Tam otvorte Vložte >> vybrať Modul .

A Modul sa otvorí a do otvoreného okna zadajte nasledujúci kód Modul .

 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, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Tu som vyhlásil. Dílčí postup Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth

Vzal som si rozsah B1:E10 kopírovanie z existujúceho hárku do názvu cieľového hárku Formát & Šírka stĺpca .

Tu som použil Kopírovať na skopírovanie vybraného rozsahu. Použil som aj metódu PasteSpecial metóda, kde som sa zmienil Vložiť:=xlPasteColumnWidths aby sa vložil vybraný rozsah spolu s Formát a Šírka stĺpca .

Nakoniec, Uložiť kód a vráťte sa na pracovný hárok.

Potom otvorte Zobraziť karta>> od Makrá >> vybrať Zobraziť makrá

➤ A dialógové okno sa objaví.

Teraz z Názov makra vybrať Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth a tiež vyberte zošit v rámci Makrá v .

Nakoniec, Spustiť vybrané Makro .

V dôsledku toho sa Kopírovať vybraný rozsah s Formát a Šírka stĺpca .

4. VBA Kopírovanie rozsahu do iného listu pomocou vzorca

V prípade, že máte v súbore údajov nejaký vzorec, ktorý chcete skopírovať. Žiadne obavy! Môžete skopírovať rozsah obsahujúci Vzorec do iného hárku, pričom vzorec zostane zachovaný.

Tu budem Kopírovať rozsah od Súbor údajov hárku na WithFormula list

Začnime postup,

Na začiatok otvorte Vývojár karta>> vybrať Visual Basic ( môžete tiež použiť ALT + F11 klávesnica)

Potom sa otvorí Microsoft Visual Basic pre aplikácie.

Odtiaľ otvorte Vložte >> vybrať Modul .

A Modul sa otvorí a do otvoreného okna zadajte nasledujúci kód Modul .

 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 

Tu som vyhlásil. Dílčí postup Copy_Range_withFormula_ToAnother_Sheet

Vzal som si rozsah B1:E10 kopírovanie z existujúceho hárku do názvu cieľového hárku WithFormula .

Tu som použil Kopírovať na skopírovanie vybraného rozsahu. Použil som aj metódu PasteSpecial metóda, kde som sa zmienil Vložiť:=xlPasteFormulas aby niesol Vzorce spolu s vybraným rozsahom.

Nakoniec, Uložiť kód a vráťte sa na pracovný hárok.

Potom otvorte Zobraziť karta>> od Makrá >> vybrať Zobraziť makrá

➤ A dialógové okno sa objaví.

Teraz z Názov makra vyberte Copy_Range_withFormula_ToAnother_Sheet vyberte aj zošit v rámci Makrá v .

Nakoniec, Spustiť vybrané Makro .

Takto bude Kopírovať všetky vybrané rozsahy buniek s Vzorce .

Podobné čítanie:

  • Ako používať posunutie rozsahu VBA (11 spôsobov)
  • VBA pre každú bunku v rozsahu v programe Excel (3 metódy)
  • Ako používať objekt rozsahu VBA v programe Excel (5 vlastností)

5. Kopírovanie rozsahu pomocou funkcie AutoFit do iného hárku

Zatiaľ čo Kopírovanie rozsah do iného hárku, môžete tiež použiť AutoFit metóda v VBA na AutoFit skopírovaný rozsah v novom hárku.

Tu budem Kopírovať rozsah od Súbor údajov hárku na AutoFit list

Začnime postup,

Najprv otvorte Vývojár karta>> vybrať Visual Basic

Môžete tiež použiť ALT + F11 klávesnice na otvorenie VBA redaktor.

Potom sa otvorí okno Microsoft Visual Basic pre aplikácie.

Potom otvorte Vložte >> vybrať Modul .

A Modul sa otvorí a do otvoreného okna zadajte nasledujúci kód Modul .

 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 

Tu som vyhlásil. Dílčí postup Copy_Range_withFormat_AutoFit

Najprv som vybral pracovný hárok Súbor údajov . Potom sa rozsah B1:E10 kopírovať z existujúceho hárku do cieľového hárku s názvom AutoFit .

Tu som použil Kopírovať metódu na kopírovanie vybraného rozsahu a AutoFit metóda automaticky upraví zadané stĺpce B:E .

Nakoniec, Uložiť kód a vráťte sa na pracovný hárok.

Potom otvorte Zobraziť karta>> od Makrá >> vybrať Zobraziť makrá

➤ A dialógové okno sa objaví.

Teraz z Názov makra vyberte Copy_Range_withFormat_AutoFit vyberte aj zošit v rámci Makrá v .

Nakoniec, Spustiť vybrané Makro .

Preto bude Kopírovať vybraný rozsah na nový list a tiež AutoFit stĺpcov.

6. VBA Kopírovanie rozsahu do iného zošita

Ak chcete, môžete tiež Kopírovať rozsah z jedného listu do iného listu iného zošita.

Tu budem Kopírovať rozsah od Súbor údajov hárku na List1 z Kniha1 pracovný zošit.

Začnime postup,

Najprv otvorte Vývojár karta>> vybrať Visual Basic (y môžete tiež použiť ALT + F11 klávesnica)

Potom sa otvorí Microsoft Visual Basic pre aplikácie.

Potom otvorte Vložte >> vybrať Modul .

A Modul sa otvorí a do otvoreného okna zadajte nasledujúci kód Modul .

 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 

Tu som vyhlásil. Dílčí postup Copy_Range_WithFormat_Toanother_WorkBook

Vzal som si rozsah B3:E10 z názvu listu Súbor údajov skopírovať z existujúceho hárku do nového názvu zošita Kniha1 a názov listu List1 .

Tu som použil Kopírovať skopírovať vybraný rozsah do nového zošita.

Nakoniec, Uložiť kód a vráťte sa na pracovný hárok.

Potom otvorte Zobraziť karta>> od Makrá >> vybrať Zobraziť makrá

➤ A dialógové okno sa objaví.

Teraz z Názov makra vyberte Copy_Range_WithFormat_Toanother_WorkBook vyberte aj zošit v rámci Makrá v .

Nakoniec, Spustiť vybrané Makro .

Teraz bude Kopírovať vybraný rozsah z Súbor údajov do iného zošita.

7. Kopírovanie rozsahu do posledného riadku iného listu

V každom prípade, ak chcete Kopírovať rozsah do iného listu z konkrétnej bunky alebo poslednej bunky, môžete to urobiť pomocou VBA .

Predtým, než začneme postup, chcem vám povedať, že som si vzal dva nové listy pozostávajúce Celé meno, e-mail, a Adresa .

Pozorujme Súbor údajov2 list ako prvý.

Tu je Pod poslednou bunkou list.

Tu budem Kopírovať rozsah od Súbor údajov2 hárku na Pod poslednou bunkou ale z prvej neprázdnej bunky.

Na začiatok otvorte Vývojár karta>> vybrať Visual Basic

Potom sa otvorí Microsoft Visual Basic pre aplikácie.

Potom otvorte Vložte >> vybrať Modul .

A Modul sa otvorí a do otvoreného okna zadajte nasledujúci kód Modul .

 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 

Tu som vyhlásil. Dílčí postup Copy_Range_BelowLastCell_AnotherSheets

Najprv som vybral hárok Súbor údajov2 a potom použil Riadok metóda na počítanie Posledný riadok a ponechal započítaný riadok v lr .

Potom sa rozsah A2:C & lr kopírovanie z existujúceho hárku do názvu cieľového hárku Pod poslednou bunkou .

Opäť použil Riadok metóda na počítanie Posledný riadok iného listu s názvom Pod poslednou bunkou a ponechal započítaný riadok v lrAnotherSheet .

Tu som použil Kopírovať metódu na kopírovanie vybraného rozsahu a AutoFit metóda automaticky upraví zadané stĺpce A:C .

Nakoniec, Uložiť kód a vráťte sa na pracovný hárok.

Potom otvorte Zobraziť karta>> od Makrá >> vybrať Zobraziť makrá

➤ A dialógové okno sa objaví.

Teraz z Názov makra vyberte Copy_Range_BelowLastCell_AnotherSheets vyberte aj zošit v rámci Makrá v .

Nakoniec, Spustiť vybrané Makro .

Preto bude Kopírovať vybraný rozsah a Vložiť z posledného riadku iného listu.

8. VBA Kopírovanie rozsahu do posledného riadku iného zošita

Ak chcete Kopírovať rozsahu do posledného riadku iného listu zošita môžete použiť aj VBA .

Tu budem Kopírovať rozsah od Súbor údajov2 hárku na List1 z Kniha2 ale z prvej neprázdnej bunky.

Spustenie postupu,

Najprv otvorte Vývojár karta>> vybrať Visual Basic

Môžete tiež použiť ALT + F11 klávesnice na otvorenie VBA redaktor.

Potom sa otvorí nové okno Microsoft Visual Basic pre aplikácie.

Odtiaľ otvorte Vložte >> vybrať Modul .

A Modul sa otvorí a do otvoreného okna zadajte nasledujúci kód Modul .

 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 

Tu som vyhlásil. Dílčí postup Copy_Range_BelowLastCell_To_Another_Workbook kde wsCopy a wsDestination Pracovný list typ, lCopyLastRow a lDestLastRow Dlhé typ.

Po prvé, použité Nastavenie nastaviť premenné pre kopírovaný hárok a cieľový hárok.

Ďalej použite Riadok metóda na vyhľadanie posledného riadku na základe údajov stĺpca A v rozsahu kopírovania.

Opäť použil Riadok metóda na vyhľadanie prvého prázdneho riadku na základe údajov stĺpca A v cieľovom rozsahu sa tiež používa Ofset presunúť sa o jednu nehnuteľnosť nižšie.

Nakoniec, Skopírované údaje o Súbor údajov2 list z Excel VBA Kopírovanie rozsahu do iného listu.xlsm zošit do cieľa List1 pracovného zošita Book2.xlsx .

Teraz, Uložiť kód a vráťte sa na pracovný hárok.

Potom otvorte Zobraziť karta>> od Makrá >> vybrať Zobraziť makrá

➤ A dialógové okno sa objaví.

Teraz z Názov makra vyberte Copy_Range_BelowLastCell_To_Another_Workbook vyberte aj zošit v rámci Makrá v .

Nakoniec, Spustiť vybrané Makro .

Preto bude Kopírovať vybraný rozsah z existujúceho hárku do posledného riadku iného zošita.

Praktická časť

V pracovnom zošite som poskytol cvičný hárok na precvičenie týchto vysvetlených spôsobov Excelu VBA skopírovať rozsah na iný hárok.

Záver

V tomto článku som vysvetlil 8 rôznych typov jednoduchých a rýchlych spôsobov aplikácie Excel VBA kopírovať rozsah do iného listu. Tieto rôzne spôsoby vám pomôžu skopírovať rozsah z jedného listu do druhého a tiež z jedného listu do iného zošita. V neposlednom rade, ak máte akékoľvek návrhy, nápady a spätnú väzbu, neváhajte sa vyjadriť nižšie.

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.