Turinys
Kai jums reikia, galite nukopijuoti diapazoną iš vieno lapo į kitą lapą ar sąsiuvinį. Yra įvairių kopijavimo ir įklijavimo tipų. Po šio straipsnio sužinosite įvairius būdus, kaip naudoti "Excel" VBA kopijuoti diapazoną į kitą lapą.
Kad paaiškinimas būtų gyvesnis, naudosiu pavyzdinį duomenų rinkinį, kuriame pateikiama konkrečių asmenų asmeninė informacija. Duomenų rinkinį sudaro 4 stulpeliai. Šie stulpeliai yra Vardas, Pavardė, Pilnas vardas, ir El. paštas .
Atsisiųsti pratybų sąsiuvinį
VBA Kopijuoti diapazoną į kitą lapą.xlsm8 "Excel VBA" kopijavimo į kitą lapą būdai
1. Kopijuokite diapazoną į kitą lapą naudodami formatą
Kai tik norite Kopijuoti diapazonas nuo vieno lapo iki kito lapo su Formatas galite tai padaryti naudodami VBA .
Čia aš Kopijuoti nuo Duomenų rinkinys lapą į WithFormat lapas.
Pradėkime procedūrą,
Pirmiausia atidarykite Kūrėjas skirtukas>> pasirinkite "Visual Basic
Taip pat galite naudoti ALT + F11 klaviatūra, kad atidarytumėte VBA redaktorius.
Tada bus atidarytas naujas langas, pavadintas "Microsoft Visual Basic for Applications".
Iš ten atidarykite Įdėkite >> pasirinkti Modulis .
A Modulis atsidarys, tada atidarytame langelyje įveskite šį kodą Modulis .
Sub Copy_Range_withFormat_ToAnother_Sheet() Range("B1:E10").Copy Worksheets("WithFormat").Range("B1:E10") End Sub
Čia deklaravau Papildoma procedūra Copy_Range_withFormat_ToAnother_Sheet
Aš ėmiausi diapazono B1:E10 kopijuoti iš esamo lapo į lapo pavadinimą WithFormat .
Čia naudojau Kopijuoti metodą, kad nukopijuotumėte pasirinktą intervalą, Kopijuoti metodas nukopijuoja bet kokį diapazoną su Formatas .
Galiausiai, Išsaugoti kodą ir grįžkite į darbalapį.
Tada atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
➤ A dialogo langas pasirodys.
Dabar iš Makro pavadinimas pasirinkite Copy_Range_withFormat_ToAnother_Sheet taip pat pasirinkite darbo knygą, esančią Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Taigi, ji bus Kopijuoti pasirinktą diapazoną su Formatas į pasirinktą naują lapą ( WithFormat) .
2. VBA Kopijuoti diapazoną į kitą lapą be formato
Taip pat galima Kopijuoti diapazoną į kitą lapą be Formatas naudodami VBA .
Čia aš Kopijuoti nuo Duomenų rinkinys lapą į WithoutFormat lapas.
Pradėkime procedūrą,
Dabar atidarykite Kūrėjas skirtukas>> pasirinkite "Visual Basic ( naudoti ALT + F11)
Tada bus atidaryta "Microsoft Visual Basic for Applications".
Tada atidarykite Įdėkite >> pasirinkti Modulis .
A Modulis atsidarys, tada atidarytame langelyje įveskite šį kodą Modulis .
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
Čia deklaravau Papildoma procedūra Copy_Range_WithoutFormat_Toanother_Sheet
Aš ėmiausi diapazono B1:E10 kopijuoti iš esamo lapo į lapo pavadinimą WithoutFormat .
Čia naudojau Kopijuoti metodą pasirinktam diapazonui kopijuoti, bet taip pat paminėjo Įklijuoti:=xlPasteValues į PasteSpecial metodą, kad jis įklijuotų tik Vertybės pasirinkto diapazono, o ne formato.
Galiausiai, Išsaugoti kodą ir grįžkite į darbalapį.
Tada atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
➤ A dialogo langas pasirodys.
Dabar iš Makro pavadinimas pasirinkite Copy_Range_WithoutFormat_Toanother_Sheet ir taip pat pasirinkite sąsiuvinį, esantį Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Taigi, ji bus Kopijuoti pasirinktą diapazoną tik su Vertybės ne Formatas .
3. Nukopijuokite diapazoną į kitą lapą su formatu ir stulpelio pločiu
Kartais galite norėti Kopijuoti bet kurį pasirinktą diapazoną, nes jis yra, todėl galite Kopijuoti asortimentas su Formatas ir Stulpelio plotis .
Čia aš Kopijuoti nuo Duomenų rinkinys lapą į Formatas & amp; Stulpelio plotis lapas.
Norėdami pamatyti užduoties atlikimo procedūrą, naudodami VBA ,
Pirmiausia atidarykite Kūrėjas skirtukas>> pasirinkite "Visual Basic
Taip pat galite naudoti ALT + F11 klaviatūra, kad atidarytumėte VBA redaktorius.
Tada bus atidarytas naujas langas "Microsoft Visual Basic for Applications".
Ten atidarykite Įdėkite >> pasirinkti Modulis .
A Modulis atsidarys, tada atidarytame langelyje įveskite šį kodą Modulis .
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
Čia deklaravau Papildoma procedūra Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth
Aš ėmiausi diapazono B1:E10 kopijuoti iš esamo lapo į paskirties lapo pavadinimą Formatas & amp; Stulpelio plotis .
Čia naudojau Kopijuoti metodą, kad nukopijuotų pasirinktą intervalą. Taip pat naudojau PasteSpecial metodą, kur aš minėjau Įklijuoti:=xlPasteColumnWidths kad jis įklijuotų pasirinktą intervalą kartu su Formatas ir Stulpelio plotis .
Galiausiai, Išsaugoti kodą ir grįžkite į darbalapį.
Tada atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
➤ A dialogo langas pasirodys.
Dabar iš Makro pavadinimas pasirinkite Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth ir taip pat pasirinkite sąsiuvinį, esantį Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Dėl to Kopijuoti pasirinktą diapazoną su Formatas ir Stulpelio plotis .
4. VBA Kopijuoti diapazoną į kitą lapą naudojant formulę
Jei savo duomenų rinkinyje turite kokią nors formulę, kurią norite nukopijuoti. Nesijaudinkite! Galite nukopijuoti diapazoną, kuriame yra Formulė į kitą lapą, išlaikant formulę nepakitusią.
Čia aš Kopijuoti nuo Duomenų rinkinys lapą į WithFormula lapas
Pradėkime procedūrą,
Pirmiausia atidarykite Kūrėjas skirtukas>> pasirinkite "Visual Basic" ( taip pat galite naudoti ALT + F11 klaviatūra)
Tada bus atidaryta "Microsoft Visual Basic for Applications".
Iš ten atidarykite Įdėkite >> pasirinkti Modulis .
A Modulis atsidarys, tada atidarytame langelyje įveskite šį kodą Modulis .
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
Čia deklaravau Papildoma procedūra Copy_Range_withFormula_ToAnother_Sheet
Aš ėmiausi diapazono B1:E10 kopijuoti iš esamo lapo į paskirties lapo pavadinimą WithFormula .
Čia naudojau Kopijuoti metodą, kad nukopijuotų pasirinktą intervalą. Taip pat naudojau PasteSpecial metodą, kur aš minėjau Įklijuoti:=xlPasteFormulas kad jame būtų Formulės kartu su pasirinktu diapazonu.
Galiausiai, Išsaugoti kodą ir grįžkite į darbalapį.
Tada atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
➤ A dialogo langas pasirodys.
Dabar iš Makro pavadinimas pasirinkite Copy_Range_withFormula_ToAnother_Sheet taip pat pasirinkite darbo knygą, esančią Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Taigi, ji bus Kopijuoti visus pasirinktus ląstelių intervalus su Formulės .
Panašūs skaitiniai:
- Kaip naudoti VBA diapazono poslinkį (11 būdų)
- VBA kiekvienam "Excel" diapazono langeliui (3 metodai)
- Kaip "Excel" programoje naudoti VBA objektą "Range Object" (5 savybės)
5. Nukopijuokite diapazoną su funkcija AutoFit į kitą lapą
Nors Kopijavimas diapazoną į kitą lapą, taip pat galite naudoti "AutoFit" metodą, esantį VBA į "AutoFit" nukopijuotą diapazoną naujame lape.
Čia aš Kopijuoti nuo Duomenų rinkinys lapą į "AutoFit" lapas
Pradėkime procedūrą,
Pirmiausia atidarykite Kūrėjas skirtukas>> pasirinkite "Visual Basic
Taip pat galite naudoti ALT + F11 klaviatūra, kad atidarytumėte VBA redaktorius.
Tada bus atidarytas langas "Microsoft Visual Basic for Applications".
Tada atidarykite Įdėkite >> pasirinkti Modulis .
A Modulis atsidarys, tada atidarytame langelyje įveskite šį kodą Modulis .
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
Čia deklaravau Papildoma procedūra Copy_Range_withFormat_AutoFit
Pirmiausia pasirinkau darbalapį Duomenų rinkinys . Tada imtasi diapazono B1:E10 kopijuoti iš esamo lapo į paskirties lapą, pavadintą "AutoFit" .
Čia naudojau Kopijuoti metodą, kad nukopijuotų pasirinktą intervalą, ir "AutoFit" metodas automatiškai pritaikys duotus stulpelius B:E .
Galiausiai, Išsaugoti kodą ir grįžkite į darbalapį.
Tada atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
➤ A dialogo langas pasirodys.
Dabar iš Makro pavadinimas pasirinkite Copy_Range_withFormat_AutoFit taip pat pasirinkite darbo knygą, esančią Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Taigi, ji bus Kopijuoti pasirinktą diapazoną į naują lapą ir "AutoFit" stulpelius.
6. VBA diapazono kopijavimas į kitą sąsiuvinį
Jei norite, taip pat galite Kopijuoti diapazoną iš vieno lapo į kitą kito sąsiuvinio lapą.
Čia aš Kopijuoti nuo Duomenų rinkinys lapą į 1 lapas iš 1 knyga darbo knyga.
Pradėkime procedūrą,
Pirmiausia atidarykite Kūrėjas skirtukas>> pasirinkite "Visual Basic" (y taip pat galite naudoti ALT + F11 klaviatūra)
Tada bus atidaryta "Microsoft Visual Basic for Applications".
Tada atidarykite Įdėkite >> pasirinkti Modulis .
A Modulis atsidarys, tada atidarytame langelyje įveskite šį kodą Modulis .
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
Čia deklaravau Papildoma procedūra Copy_Range_WithFormat_Toanother_WorkBook
Aš ėmiausi diapazono B3:E10 iš lapo pavadinimo Duomenų rinkinys nukopijuoti iš esamo lapo į naują sąsiuvinio pavadinimą 1 knyga ir lapo pavadinimas 1 lapas .
Čia naudojau Kopijuoti metodą, kad nukopijuotumėte pasirinktą intervalą į naują sąsiuvinį.
Galiausiai, Išsaugoti kodą ir grįžkite į darbalapį.
Tada atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
➤ A dialogo langas pasirodys.
Dabar iš Makro pavadinimas pasirinkite Copy_Range_WithFormat_Toanother_WorkBook taip pat pasirinkite darbo knygą, esančią Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Dabar ji bus Kopijuoti pasirinktą diapazoną iš Duomenų rinkinys lapą į kitą sąsiuvinį.
7. Nukopijuokite diapazoną į kito lapo paskutinę eilutę
Bet kuriuo atveju, jei norite Kopijuoti diapazoną į kitą lapą iš tam tikros ląstelės arba paskutinės ląstelės, galite tai padaryti naudodami VBA .
Prieš pradėdamas procedūrą, noriu pasakyti, kad aš paėmiau du naujus lapus, kuriuos sudaro Vardas ir pavardė, el. paštas, ir Adresas .
Stebime Duomenų rinkinys2 pirmiausia lapas.
Čia yra Žemiau paskutinio langelio lapas.
Čia aš Kopijuoti nuo Duomenų rinkinys2 lapą į Žemiau paskutinio langelio bet iš pirmojo ne tuščio langelio.
Pirmiausia atidarykite Kūrėjas skirtukas>> pasirinkite "Visual Basic
Tada bus atidaryta "Microsoft Visual Basic for Applications".
Tada atidarykite Įdėkite >> pasirinkti Modulis .
A Modulis atsidarys, tada atidarytame langelyje įveskite šį kodą Modulis .
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
Čia deklaravau Papildoma procedūra Copy_Range_BelowLastCell_AnotherSheets
Pirmiausia pasirinkau lapą Duomenų rinkinys2 ir tada naudojo Eilutė metodą, skirtą skaičiuoti Paskutinė eilutė ir išsaugojo suskaičiuotą eilutę lr .
Tada paimtas diapazonas A2:C & amp; lr kopijuoti iš esamo lapo į paskirties lapo pavadinimą Žemiau paskutinio langelio .
Vėlgi, naudojamas Eilutė metodą, skirtą skaičiuoti Paskutinė eilutė kito lapo, pavadinto Žemiau paskutinio langelio ir išsaugojo suskaičiuotą eilutę lrAnotherSheet .
Čia naudojau Kopijuoti metodą, kad nukopijuotų pasirinktą intervalą, ir "AutoFit" metodas automatiškai pritaikys duotus stulpelius A:C .
Galiausiai, Išsaugoti kodą ir grįžkite į darbalapį.
Tada atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
➤ A dialogo langas pasirodys.
Dabar iš Makro pavadinimas pasirinkite Copy_Range_BelowLastCell_AnotherSheets taip pat pasirinkite darbo knygą, esančią Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Taigi, ji bus Kopijuoti pasirinktą diapazoną ir Pasta iš paskutinės kito lapo eilutės.
8. VBA Kopijuoti diapazoną į kitos darbo knygos paskutinę eilutę
Jei norite Kopijuoti diapazoną į paskutinę kito sąsiuvinio lapo eilutę, taip pat galite naudoti VBA .
Čia aš Kopijuoti nuo Duomenų rinkinys2 lapą į 1 lapas iš 2 knyga bet iš pirmojo ne tuščio langelio.
Procedūros pradžia,
Pirmiausia atidarykite Kūrėjas skirtukas>> pasirinkite "Visual Basic
Taip pat galite naudoti ALT + F11 klaviatūra, kad atidarytumėte VBA redaktorius.
Tada bus atidarytas naujas langas "Microsoft Visual Basic for Applications".
Iš ten atidarykite Įdėkite >> pasirinkti Modulis .
A Modulis atsidarys, tada atidarytame langelyje įveskite šį kodą Modulis .
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
Čia deklaravau Papildoma procedūra Copy_Range_BelowLastCell_To_Another_Workbook kur wsCopy ir wsDestination yra Darbalapis tipas, lCopyLastRow ir lDestLastRow yra Ilgas tipas.
Pirma, naudojamas Nustatyti nustatyti kopijuojamo lapo ir paskirties lapo kintamuosius.
Toliau naudokite Eilutė metodas, skirtas rasti paskutinę eilutę pagal stulpelio duomenis A kopijavimo diapazone.
Vėlgi, naudojamas Eilutė metodas, skirtas rasti pirmąją tuščią eilutę pagal stulpelio duomenis A paskirties diapazone taip pat naudojama Įstrižas perkelti į žemesnes pozicijas.
Galiausiai, Nukopijuota duomenys Duomenų rinkinys2 lapą iš "Excel" VBA Kopijuoti diapazoną į kitą lapą.xlsm darbo knygą į paskirties vietą 1 lapas sąsiuvinio Book2.xlsx .
Dabar, Išsaugoti kodą ir grįžkite į darbalapį.
Tada atidarykite Peržiūrėti skirtukas>> iš Makrokomandos >> pasirinkti Peržiūrėti makrokomandas
➤ A dialogo langas pasirodys.
Dabar iš Makro pavadinimas pasirinkite Copy_Range_BelowLastCell_To_Another_Workbook taip pat pasirinkite darbo knygą, esančią Makrokomandos .
Galiausiai, Paleisti pasirinktas Makro .
Taigi, ji bus Kopijuoti pasirinktą diapazoną iš esamo lapo į paskutinę kito sąsiuvinio eilutę.
Praktikos skyrius
Sąsiuvinyje pateikiau praktikos lapą, kuriame galima praktiškai išbandyti šiuos paaiškintus "Excel" būdus. VBA kopijuoti diapazoną į kitą lapą.
Išvada
Šiame straipsnyje paaiškinau 8 skirtingus paprastus ir greitus "Excel" būdus. VBA kopijuoti diapazoną į kitą lapą. Šie skirtingi būdai padės jums nukopijuoti diapazoną iš vieno lapo į kitą, taip pat iš vieno lapo į kitą sąsiuvinį. Galiausiai, jei turite kokių nors pasiūlymų, idėjų ir atsiliepimų, nedvejodami komentuokite toliau.