Kazalo
Kadar koli potrebujete, lahko kopirate območje iz enega lista v drug list ali delovni zvezek. Obstajajo različne vrste kopiranja in lepljenja. V tem članku boste spoznali različne načine uporabe Excelovega območja kopiranja VBA v drug list.
Da bo razlaga bolj živahna, bom uporabil vzorčni nabor podatkov, ki predstavlja osebne podatke določenih oseb. Nabor podatkov ima 4 stolpce. Ti stolpci so Ime, priimek, polno ime, in . E-pošta .
Prenesi delovni zvezek za prakso
VBA Kopiranje območja v drug list.xlsm8 načinov za kopiranje območja Excel VBA v drug list
1. Kopiranje obsega na drug list z oblikovanjem
Kadar koli želite Kopiraj razpon od enega lista do drugega lista z Format lahko to preprosto storite z uporabo VBA .
Tukaj bom Kopiraj v razponu od Zbirka podatkov list na WithFormat list.
Začnimo postopek,
Najprej odprite Razvijalec zavihek>> izberite Visual Basic
Uporabite lahko tudi ALT + F11 tipkovnico, da odprete VBA urednik.
Nato se odpre novo okno z imenom Microsoft Visual Basic za aplikacije.
Od tam odprite Vstavite >> izberite Modul .
A Modul se bo odprl, nato pa v odprto okno vnesite naslednjo kodo Modul .
Sub Copy_Range_withFormat_ToAnother_Sheet() Razpon("B1:E10").Copy Worksheets("WithFormat").Range("B1:E10") End Sub
Tu sem razglasil Podpostopek Copy_Range_withFormat_ToAnother_Sheet
Vzel sem obseg B1:E10 za kopiranje iz obstoječega lista v ime lista WithFormat .
Tu sem uporabil Kopiraj za kopiranje izbranega območja, Kopiraj metoda kopira poljubno območje z Format .
Končno, Shrani kodo in se vrnite na delovni list.
Nato odprite Oglejte si zavihek>> od Makroji >> izberite Ogled makrov
➤ A pogovorno okno se prikaže.
Zdaj, od Ime makra izberite Copy_Range_withFormat_ToAnother_Sheet izberite tudi delovni zvezek v Makroji v .
Končno, Spustite izbrani Makro .
Zato bo Kopiraj izbrano območje z Format v nov list, ki sem ga izbral ( WithFormat) .
2. VBA Kopiranje obsega na drug list brez oblikovanja
Možno je tudi Kopiraj območja na drug list brez Format z uporabo VBA .
Tukaj bom Kopiraj v razponu od Zbirka podatkov list na WithoutFormat list.
Začnimo postopek,
Zdaj odprite Razvijalec zavihek>> izberite Visual Basic ( uporabite ALT + F11)
Nato bo odprl Microsoft Visual Basic za aplikacije.
Nato odprite Vstavite >> izberite Modul .
A Modul se bo odprl, nato pa v odprto okno vnesite naslednjo kodo 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 sem razglasil Podpostopek Kopiraj_Območje_brez_formata_na_drugi_list
Vzel sem obseg B1:E10 za kopiranje iz obstoječega lista v ime lista WithoutFormat .
Tu sem uporabil Kopiraj metodo za kopiranje izbranega območja, vendar je omenil tudi Prilepi:=xlPasteValues v PasteSpecial metodo, tako da bo prilepila samo Vrednosti izbranega območja in ne oblike.
Končno, Shrani kodo in se vrnite na delovni list.
Nato odprite Oglejte si zavihek>> od Makroji >> izberite Ogled makrov
➤ A pogovorno okno se prikaže.
Zdaj, od Ime makra izberite Kopiraj_Območje_brez_formata_na_drugi_list in izberite delovni zvezek v Makroji v .
Končno, Spustite izbrani Makro .
Tako bo Kopiraj izbrano območje samo z Vrednosti ne Format .
3. Kopiranje obsega na drug list z obliko in širino stolpca
Včasih boste morda želeli Kopiraj poljubno izbrano območje, kot je, za kar lahko Kopiraj območje z Format in . Širina stolpca .
Tukaj bom Kopiraj v razponu od Zbirka podatkov list na Format & Širina stolpca list.
Če si želite ogledati postopek za izvedbo naloge z uporabo VBA ,
Najprej odprite Razvijalec zavihek>> izberite Visual Basic
Uporabite lahko tudi ALT + F11 tipkovnico, da odprete VBA urednik.
Nato se odpre novo okno Microsoft Visual Basic za aplikacije.
Tam odprite Vstavite >> izberite Modul .
A Modul se bo odprl, nato pa v odprto okno vnesite naslednjo kodo 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 sem razglasil Podpostopek Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth
Vzel sem obseg B1:E10 za kopiranje iz obstoječega lista v ime ciljnega lista Format & Širina stolpca .
Tu sem uporabil Kopiraj za kopiranje izbranega območja. Uporabil sem tudi metodo PasteSpecial metoda, kjer sem omenil Prilepi:=xlPasteColumnWidths tako, da prilepi izbrano območje skupaj z Format in . Širina stolpca .
Končno, Shrani kodo in se vrnite na delovni list.
Nato odprite Oglejte si zavihek>> od Makroji >> izberite Ogled makrov
➤ A pogovorno okno se prikaže.
Zdaj, od Ime makra izberite Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth in izberite delovni zvezek v Makroji v .
Končno, Spustite izbrani Makro .
Zato bo Kopiraj izbrano območje z Format in . Širina stolpca .
4. VBA Kopiranje območja na drug list s formulo
Če imate v naboru podatkov formulo, ki jo želite kopirati, ni skrbi! Kopirate lahko območje, ki vsebuje Formula na drug list, pri čemer formula ostane nedotaknjena.
Tukaj bom Kopiraj v razponu od Zbirka podatkov list na S formulo list
Začnimo postopek,
Za začetek odprite Razvijalec zavihek>> izberite Visual Basic ( lahko uporabite tudi ALT + F11 tipkovnica)
Nato bo odprl Microsoft Visual Basic za aplikacije.
Od tam odprite Vstavite >> izberite Modul .
A Modul se bo odprl, nato pa v odprto okno vnesite naslednjo kodo 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 sem razglasil Podpostopek Kopiraj_območje_z_formulo_na_drugi_list
Vzel sem obseg B1:E10 za kopiranje iz obstoječega lista v ime ciljnega lista S formulo .
Tu sem uporabil Kopiraj za kopiranje izbranega območja. Uporabil sem tudi metodo PasteSpecial metoda, kjer sem omenil Prilepi:=xlPasteFormulas tako da nosi Formule skupaj z izbranim območjem.
Končno, Shrani kodo in se vrnite na delovni list.
Nato odprite Oglejte si zavihek>> od Makroji >> izberite Ogled makrov
➤ A pogovorno okno se prikaže.
Zdaj, od Ime makra izberite Kopiraj_območje_z_formulo_na_drugi_list izberite tudi delovni zvezek v Makroji v .
Končno, Spustite izbrani Makro .
Tako bo Kopiraj vsa izbrana območja celic z Formule .
Podobna branja:
- Kako uporabiti VBA Range Offset (11 načinov)
- VBA za vsako celico v območju v Excelu (3 metode)
- Kako uporabljati objekt Range VBA v Excelu (5 lastnosti)
5. Kopiranje območja s funkcijo AutoFit na drug list
Medtem ko Kopiranje obseg na drug list, lahko uporabite tudi AutoFit metoda v VBA na . AutoFit kopirano območje v novem listu.
Tukaj bom Kopiraj v razponu od Zbirka podatkov list na AutoFit list
Začnimo postopek,
Najprej odprite Razvijalec zavihek>> izberite Visual Basic
Uporabite lahko tudi ALT + F11 tipkovnico, da odprete VBA urednik.
Nato se odpre okno Microsoft Visual Basic za aplikacije.
Nato odprite Vstavite >> izberite Modul .
A Modul se bo odprl, nato pa v odprto okno vnesite naslednjo kodo 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 sem razglasil Podpostopek Copy_Range_withFormat_AutoFit
Najprej sem izbral delovni list Zbirka podatkov . Potem je bil obseg B1:E10 za kopiranje iz obstoječega lista v ciljni list z imenom AutoFit .
Tu sem uporabil Kopiraj metodo za kopiranje izbranega območja in AutoFit metoda bo samodejno prilagodila dane stolpce B: E .
Končno, Shrani kodo in se vrnite na delovni list.
Nato odprite Oglejte si zavihek>> od Makroji >> izberite Ogled makrov
➤ A pogovorno okno se prikaže.
Zdaj, od Ime makra izberite Copy_Range_withFormat_AutoFit izberite tudi delovni zvezek v Makroji v .
Končno, Spustite izbrani Makro .
Zato bo Kopiraj izbrano območje na nov list in tudi AutoFit stolpci.
6. VBA Kopiranje obsega v drug delovni zvezek
Če želite, lahko Kopiraj obseg iz enega lista v drug list drugega delovnega zvezka.
Tukaj bom Kopiraj v razponu od Zbirka podatkov list na List1 na spletnem mestu Knjiga1 delovni zvezek.
Začnimo postopek,
Najprej odprite Razvijalec zavihek>> izberite Visual Basic (y lahko uporabite tudi ALT + F11 tipkovnica)
Nato se odpre Microsoft Visual Basic za aplikacije.
Nato odprite Vstavite >> izberite Modul .
A Modul se bo odprl, nato pa v odprto okno vnesite naslednjo kodo Modul .
Sub Copy_Range_WithFormat_Toanother_WorkBook() Delovne knjige("Excel VBA Copy Range to Another Sheet.xlsm").Worksheets("Dataset").Range("B3:E10"). _ Copy Delovne knjige("Book1").Worksheets("Sheet1").Range("B3") End Sub
Tu sem razglasil Podpostopek Kopiraj_Območje_z_obliko_v_drugo_delovno_knjigo
Vzel sem območje B3:E10 iz imena lista Zbirka podatkov za kopiranje iz obstoječega lista v novo ime delovnega zvezka Knjiga1 in ime lista List1 .
Tu sem uporabil Kopiraj za kopiranje izbranega območja v nov delovni zvezek.
Končno, Shrani kodo in se vrnite na delovni list.
Nato odprite Oglejte si zavihek>> od Makroji >> izberite Ogled makrov
➤ A pogovorno okno se prikaže.
Zdaj, od Ime makra izberite Kopiraj_Območje_z_obliko_v_drugo_delovno_knjigo izberite tudi delovni zvezek v Makroji v .
Končno, Spustite izbrani Makro .
Zdaj bo Kopiraj izbrano območje iz Zbirka podatkov list v drug delovni zvezek.
7. Kopiranje območja v zadnjo vrstico drugega lista
V vsakem primeru, če želite Kopiraj obseg v drug list iz določene celice ali zadnje celice, lahko to storite z uporabo VBA .
Pred začetkom postopka, Želim vam povedati, da, Sem vzel dve novi listi, sestavljeni iz Polno ime, e-pošta, in . Naslov .
Opazujmo Zbirka podatkov2 najprej list.
Tukaj je Pod zadnjo celico list.
Tukaj bom Kopiraj v razponu od Zbirka podatkov2 list na Pod zadnjo celico vendar iz prve neprazne celice.
Za začetek odprite Razvijalec zavihek>> izberite Visual Basic
Nato bo odprla Microsoft Visual Basic za aplikacije.
Nato odprite Vstavite >> izberite Modul .
A Modul se bo odprl, nato pa v odprto okno vnesite naslednjo kodo 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 EndPod
Tu sem razglasil Podpostopek Copy_Range_BelowLastCell_AnotherSheets
Najprej sem izbral list Zbirka podatkov2 in nato uporabil Vrstica metoda za štetje Zadnja vrstica in ohranil prešteto vrstico v lr .
Nato vzemite obseg A2:C & amp; lr za kopiranje iz obstoječega lista v ime ciljnega lista Pod zadnjo celico .
Ponovno uporabite Vrstica metoda za štetje Zadnja vrstica drugega lista z imenom Pod zadnjo celico in ohranil prešteto vrstico v lrAnotherSheet .
Tu sem uporabil Kopiraj metodo za kopiranje izbranega območja in AutoFit metoda bo samodejno prilagodila dane stolpce A:C .
Končno, Shrani kodo in se vrnite na delovni list.
Nato odprite Oglejte si zavihek>> od Makroji >> izberite Ogled makrov
➤ A pogovorno okno se prikaže.
Zdaj, od Ime makra izberite Copy_Range_BelowLastCell_AnotherSheets izberite tudi delovni zvezek v Makroji v .
Končno, Spustite izbrani Makro .
Zato bo Kopiraj izbrano območje in bo Paste iz zadnje vrstice drugega lista.
8. VBA Kopiranje območja v zadnjo vrstico drugega delovnega zvezka
Če želite Kopiraj območja v zadnjo vrstico drugega lista delovnega zvezka lahko uporabite tudi VBA .
Tukaj bom Kopiraj v razponu od Zbirka podatkov2 list na List1 na spletnem mestu Knjiga2 vendar iz prve neprazne celice.
Začetek postopka,
Najprej odprite Razvijalec zavihek>> izberite Visual Basic
Uporabite lahko tudi ALT + F11 tipkovnico, da odprete VBA urednik.
Nato se odpre novo okno Microsoft Visual Basic za aplikacije.
Od tam odprite Vstavite >> izberite Modul .
A Modul se bo odprl, nato pa v odprto okno vnesite naslednjo kodo 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 sem razglasil Podpostopek Copy_Range_BelowLastCell_To_Another_Workbook kjer je wsCopy in . wsDestination so . Delovni list vrsta, lCopyLastRow in . lDestLastRow so . Dolga vrsta.
Najprej uporabite Nastavite za nastavitev spremenljivk za list za kopiranje in ciljni list.
Nato uporabite Vrstica metoda za iskanje zadnje vrstice na podlagi podatkov stolpca A v območju kopiranja.
Ponovno uporabite Vrstica metoda za iskanje prve prazne vrstice na podlagi podatkov iz stolpca A v namembnem območju se uporablja tudi Odmik se premaknete za eno nepremičnino.
Končno, Kopirano podatke o Zbirka podatkov2 list iz Excel VBA Kopiranje območja v drug list.xlsm delovnega zvezka v ciljni List1 delovnega zvezka Book2.xlsx .
Zdaj, Shrani kodo in se vrnite na delovni list.
Nato odprite Oglejte si zavihek>> od Makroji >> izberite Ogled makrov
➤ A pogovorno okno se prikaže.
Zdaj, od Ime makra izberite Copy_Range_BelowLastCell_To_Another_Workbook izberite tudi delovni zvezek v Makroji v .
Končno, Spustite izbrani Makro .
Zato bo Kopiraj izbrano območje iz obstoječega lista v zadnjo vrstico drugega delovnega zvezka.
Oddelek za prakso
V delovnem zvezku sem pripravil vadbeni list za vadbo teh pojasnjenih načinov programa Excel. VBA kopiranje območja na drug list.
Zaključek
V tem članku sem razložil 8 različnih vrst enostavnih in hitrih načinov uporabe programa Excel VBA kopiranje območja na drug list. Ti različni načini vam bodo pomagali kopirati območje iz enega lista v drugega in tudi iz enega lista v drug delovni zvezek. Nenazadnje, če imate kakršne koli predloge, ideje in povratne informacije, vas prosimo, da jih komentirate spodaj.