Spis treści
Kiedykolwiek potrzebujesz, możesz skopiować zakres z jednego arkusza do innego arkusza lub skoroszytu. Istnieją różne rodzaje kopiowania i wklejania. Podążając za tym artykułem, poznasz różne sposoby korzystania z Excel VBA kopiowania zakresu do innego arkusza.
Aby wyjaśnienie było żywe, posłużę się przykładowym zbiorem danych, który reprezentuje dane osobowe poszczególnych osób.Zbiór danych ma 4 kolumny.Kolumny te to. Imię, Nazwisko, Pełna nazwa, oraz Email .
Pobierz podręcznik do ćwiczeń
VBA Kopiowanie zakresu do innego arkusza.xlsm8 sposobów na Excel VBA kopiowanie zakresu do innego arkusza
1. kopiowanie zakresu do innego arkusza za pomocą formatu
Kiedykolwiek chcesz Kopia zakres od jednego arkusza do drugiego arkusza z Format możesz to zrobić po prostu używając VBA .
Tutaj, ja Kopia zakres od Zbiór danych arkusz do WithFormat arkusz.
Rozpocznijmy procedurę,
Najpierw należy otworzyć Deweloper tab>> wybierz Visual Basic
Można również użyć ALT + F11 klawiatura, aby otworzyć VBA red.
Następnie otworzy nowe okno o nazwie Microsoft Visual Basic for Applications.
Stamtąd otwórz Wkładka >> wybierz Moduł .
A Moduł otworzy się, a następnie wpisz w otwartym oknie następujący kod Moduł .
Sub Copy_Range_withFormat_ToAnother_Sheet() Range("B1:E10").Copy Worksheets("WithFormat").Range("B1:E10") End Sub
Tutaj zadeklarowałem Procedura cząstkowa Copy_Range_withFormat_ToAnother_Sheet
Wziąłem zakres B1:E10 aby skopiować z istniejącego arkusza do nazwy arkusza WithFormat .
Tutaj użyłem Kopia aby skopiować wybrany zakres, Kopia Metoda kopiuje dowolny zakres z Format .
Wreszcie, Zapisz kod i wróć do arkusza.
Następnie należy otworzyć Zobacz tab>> od Makra >> wybierz Wyświetlanie makr
➤ A okno dialogowe pojawi się.
Teraz, z Nazwa makra wybrać Copy_Range_withFormat_ToAnother_Sheet wybrać również skoroszyt w ramach Makra w .
Wreszcie, Uruchom wybrany Makro .
W związku z tym będzie Kopia wybrany zakres z Format do wybranego przeze mnie nowego arkusza ( WithFormat) .
2. VBA Kopiuj zakres do innego arkusza bez formatu
Możliwe jest również Kopia zakres do innego arkusza bez Format poprzez użycie VBA .
Tutaj, ja Kopia zakres od Zbiór danych arkusz do WithoutFormat arkusz.
Rozpocznijmy procedurę,
Teraz otwórz Deweloper tab>> wybierz Visual Basic ( używać ALT + F11)
Następnie otworzy się Microsoft Visual Basic for Applications.
Następnie otwórz Wkładka >> wybierz Moduł .
A Moduł otworzy się, a następnie wpisz w otwartym oknie następujący kod Moduł .
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
Tutaj zadeklarowałem Procedura cząstkowa Copy_Range_WithoutFormat_Toanother_Sheet
Wziąłem zakres B1:E10 aby skopiować z istniejącego arkusza do nazwy arkusza WithoutFormat .
Tutaj użyłem Kopia aby skopiować wybrany zakres, ale także wspomniał Wklejanie:=xlPasteValues w PasteSpecial aby wklejała tylko Wartości wybranego zakresu, a nie formatu.
Wreszcie, Zapisz kod i wróć do arkusza.
Następnie należy otworzyć Zobacz tab>> od Makra >> wybierz Wyświetlanie makr
➤ A okno dialogowe pojawi się.
Teraz, z Nazwa makra wybrać Copy_Range_WithoutFormat_Toanother_Sheet a także wybrać skoroszyt w ramach Makra w .
Wreszcie, Uruchom wybrany Makro .
Tak więc będzie to Kopia wybrany zakres tylko z Wartości nie Format .
3. kopiowanie zakresu do innego arkusza z uwzględnieniem formatu i szerokości kolumn
Czasami możesz chcieć Kopia dowolnie wybrany zakres, za to można Kopia zakres z Format oraz Szerokość kolumny .
Tutaj, ja Kopia zakres od Zbiór danych arkusz do Format & Szerokość kolumny arkusz.
Aby zobaczyć procedurę wykonania zadania przy użyciu VBA ,
Najpierw należy otworzyć Deweloper tab>> wybierz Visual Basic
Można również użyć ALT + F11 klawiatura, aby otworzyć VBA red.
Następnie otworzy nowe okno Microsoft Visual Basic for Applications.
Tam, otwórz Wkładka >> wybierz Moduł .
A Moduł otworzy się, a następnie wpisz w otwartym oknie następujący kod Moduł .
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
Tutaj zadeklarowałem Procedura cząstkowa Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth
Wziąłem zakres B1:E10 aby skopiować z istniejącego arkusza do nazwy arkusza docelowego Format & Szerokość kolumny .
Tutaj użyłem Kopia aby skopiować wybrany zakres. Użyłem również metody PasteSpecial gdzie wspomniałem Wklejanie:=xlPasteColumnWidths tak aby wkleić wybrany zakres wraz z Format oraz Szerokość kolumny .
Wreszcie, Zapisz kod i wróć do arkusza.
Następnie należy otworzyć Zobacz tab>> od Makra >> wybierz Wyświetlanie makr
➤ A okno dialogowe pojawi się.
Teraz, z Nazwa makra wybrać Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth a także wybrać skoroszyt w ramach Makra w .
Wreszcie, Uruchom wybrany Makro .
W związku z tym będzie Kopia wybrany zakres z Format oraz Szerokość kolumny .
4. VBA kopiowanie zakresu do innego arkusza za pomocą formuły
Jeśli masz jakąś formułę w swoim zbiorze danych, którą chcesz skopiować, nie martw się! Możesz skopiować zakres zawierający Formuła do innego arkusza, zachowując nienaruszoną formułę.
Tutaj, ja Kopia zakres od Zbiór danych arkusz do WithFormula arkusz
Rozpocznijmy procedurę,
Na początek należy otworzyć Deweloper tab>> wybierz Visual Basic (. możesz również użyć ALT + F11 klawiatura)
Następnie otworzy się Microsoft Visual Basic for Applications.
Stamtąd otwórz Wkładka >> wybierz Moduł .
A Moduł otworzy się, a następnie wpisz w otwartym oknie następujący kod Moduł .
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
Tutaj zadeklarowałem Procedura cząstkowa Copy_Range_withFormula_ToAnother_Sheet
Wziąłem zakres B1:E10 aby skopiować z istniejącego arkusza do nazwy arkusza docelowego WithFormula .
Tutaj użyłem Kopia aby skopiować wybrany zakres. Użyłem również metody PasteSpecial gdzie wspomniałem Wklejanie:=xlPasteFormulas tak, że przenosi Formuły wraz z wybranym zakresem.
Wreszcie, Zapisz kod i wróć do arkusza.
Następnie należy otworzyć Zobacz tab>> od Makra >> wybierz Wyświetlanie makr
➤ A okno dialogowe pojawi się.
Teraz, z Nazwa makra wybrać Copy_Range_withFormula_ToAnother_Sheet wybrać również skoroszyt w ramach Makra w .
Wreszcie, Uruchom wybrany Makro .
Tak więc będzie to Kopia wszystkie wybrane zakresy komórek z Formuły .
Podobne Lektury:
- Jak używać VBA Range Offset (11 sposobów)
- VBA dla każdej komórki w zakresie w Excelu (3 metody)
- Jak wykorzystać obiekt Range w VBA w Excelu (5 właściwości)
Kopiowanie zakresu z funkcją AutoFit do innego arkusza
Podczas gdy Kopiowanie zakres do innego arkusza można również użyć AutoFit metoda w VBA do AutoFit skopiowany zakres w nowym arkuszu.
Tutaj, ja Kopia zakres od Zbiór danych arkusz do AutoFit arkusz
Rozpocznijmy procedurę,
Najpierw należy otworzyć Deweloper tab>> wybierz Visual Basic
Można również użyć ALT + F11 klawiatura, aby otworzyć VBA red.
Następnie otworzy okno Microsoft Visual Basic for Applications.
Następnie otwórz Wkładka >> wybierz Moduł .
A Moduł otworzy się, a następnie wpisz w otwartym oknie następujący kod Moduł .
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
Tutaj zadeklarowałem Procedura cząstkowa Copy_Range_withFormat_AutoFit
Najpierw wybrałem arkusz Zbiór danych . Then taken the range B1:E10 aby skopiować z istniejącego arkusza do arkusza docelowego o nazwie AutoFit .
Tutaj użyłem Kopia aby skopiować wybrany zakres i metodę AutoFit metoda będzie autofitować podane kolumny B:E .
Wreszcie, Zapisz kod i wróć do arkusza.
Następnie należy otworzyć Zobacz tab>> od Makra >> wybierz Wyświetlanie makr
➤ A okno dialogowe pojawi się.
Teraz, z Nazwa makra wybrać Copy_Range_withFormat_AutoFit wybrać również skoroszyt w ramach Makra w .
Wreszcie, Uruchom wybrany Makro .
W związku z tym będzie Kopia wybrany zakres do nowego arkusza, a także AutoFit kolumny.
6. VBA Kopiowanie zakresu do innego skoroszytu
Jeśli chcesz, możesz również Kopia zakres z jednego arkusza do innego arkusza innego skoroszytu.
Tutaj, ja Kopia zakres od Zbiór danych arkusz do Plansza1. z Księga1 zeszyt ćwiczeń.
Rozpocznijmy procedurę,
Najpierw należy otworzyć Deweloper tab>> wybierz Visual Basic (y możesz również użyć ALT + F11 klawiatura)
Następnie otworzy się Microsoft Visual Basic for Applications.
Następnie należy otworzyć Wkładka >> wybierz Moduł .
A Moduł otworzy się, a następnie wpisz w otwartym oknie następujący kod Moduł .
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
Tutaj zadeklarowałem Procedura cząstkowa Copy_Range_WithFormat_Toanother_WorkBook
Wziąłem zakres B3:E10 z nazwy arkusza Zbiór danych aby skopiować z istniejącego arkusza do nowego skoroszytu nazwę Księga1 i nazwa arkusza Plansza1. .
Tutaj użyłem Kopia aby skopiować wybrany zakres do nowego skoroszytu.
W końcu, Zapisz kod i wróć do arkusza.
Następnie należy otworzyć Zobacz tab>> od Makra >> wybierz Wyświetlanie makr
➤ A okno dialogowe pojawi się.
Teraz, z Nazwa makra wybrać Copy_Range_WithFormat_Toanother_WorkBook wybrać również skoroszyt w ramach Makra w .
Wreszcie, Uruchom wybrany Makro .
Teraz, będzie to Kopia wybrany zakres z Zbiór danych arkusz do innego skoroszytu.
7. skopiowanie zakresu do ostatniego wiersza innego arkusza
W każdym razie, jeśli chcesz Kopia przeniesienie zakresu do innego arkusza z konkretnej komórki lub ostatniej komórki można to zrobić za pomocą VBA .
Przed wejściem do procedury, chcę ci powiedzieć, że, wziąłem dwa nowe arkusze składające się Imię i nazwisko, Email, oraz Adres .
Obserwujmy Zbiór danych2 najpierw arkusz.
Oto. Poniżej ostatniej komórki arkusz.
Tutaj, ja Kopia zakres od Zbiór danych2 arkusz do Poniżej ostatniej komórki ale z pierwszej nie pustej komórki.
Na początek należy otworzyć Deweloper tab>> wybierz Visual Basic
Następnie otworzy się Microsoft Visual Basic for Applications.
Następnie otwórz Wkładka >> wybierz Moduł .
A Moduł otworzy się, a następnie wpisz w otwartym oknie następujący kod Moduł .
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
Tutaj zadeklarowałem Procedura cząstkowa Copy_Range_BelowLastCell_AnotherSheets
Najpierw wybrałem arkusz Zbiór danych2 a następnie użył Wiersz metoda do liczenia Ostatni rząd i zachował policzony rząd w lr .
Następnie wzięto zakres A2:C & lr aby skopiować z istniejącego arkusza do nazwy arkusza docelowego Poniżej ostatniej komórki .
Ponownie, użyłem Wiersz metoda do liczenia Ostatni rząd innego arkusza o nazwie Poniżej ostatniej komórki i zachował policzony rząd w lrAnotherSheet .
Tutaj użyłem Kopia aby skopiować wybrany zakres i metodę AutoFit metoda będzie autofitować podane kolumny A:C .
W końcu, Zapisz kod i wróć do arkusza.
Następnie należy otworzyć Zobacz tab>> od Makra >> wybierz Wyświetlanie makr
➤ A okno dialogowe pojawi się.
Teraz, z Nazwa makra wybrać Copy_Range_BelowLastCell_AnotherSheets wybrać również skoroszyt w ramach Makra w .
Wreszcie, Uruchom wybrany Makro .
W związku z tym będzie Kopia wybranego zakresu i będzie Pasta z ostatniego rzędu innego arkusza.
8. VBA Kopiowanie zakresu do ostatniego wiersza innego skoroszytu
Jeśli chcesz Kopia zakresu do ostatniego wiersza innego arkusza skoroszytu można również użyć polecenia VBA .
Tutaj, ja Kopia zakres od Zbiór danych2 arkusz do Plansza1. z Księga2 ale z pierwszej nie pustej komórki.
Aby rozpocząć procedurę,
Najpierw należy otworzyć Deweloper tab>> wybierz Visual Basic
Można również użyć ALT + F11 klawiatura, aby otworzyć VBA red.
Następnie otworzy nowe okno Microsoft Visual Basic for Applications.
Stamtąd otwórz Wkładka >> wybierz Moduł .
A Moduł otworzy się, a następnie wpisz w otwartym oknie następujący kod Moduł .
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
Tutaj zadeklarowałem Procedura cząstkowa Copy_Range_BelowLastCell_To_Another_Workbook gdzie wsCopy oraz wsDestination są Arkusz roboczy typu, lCopyLastRow oraz lDestLastRow są Długi typu.
Po pierwsze, użyto Ustaw aby ustawić zmienne dla arkusza do skopiowania i arkusza docelowego.
Następnie użyto Wiersz metoda do znalezienia ostatniego wiersza na podstawie danych z kolumny A w zakresie kopiowania.
Ponownie, użyłem Wiersz metoda znalezienia pierwszego pustego wiersza na podstawie danych z kolumny A w zakresie docelowym wykorzystano również Przesunięcie aby przesunąć się o jedną nieruchomość w dół.
W końcu, Skopiowane dane z Zbiór danych2 arkusz z Excel VBA Kopiowanie zakresu do innego arkusza.xlsm skoroszyt do miejsca docelowego Plansza1. zeszytu Book2.xlsx .
Teraz, Zapisz kod i wróć do arkusza.
Następnie należy otworzyć Zobacz tab>> od Makra >> wybierz Wyświetlanie makr
➤ A okno dialogowe pojawi się.
Teraz, z Nazwa makra wybrać Copy_Range_BelowLastCell_To_Another_Workbook wybrać również skoroszyt w ramach Makra w .
Wreszcie, Uruchom wybrany Makro .
W związku z tym będzie Kopia wybrany zakres z istniejącego arkusza do ostatniego wiersza innego skoroszytu.
Część ćwiczeniowa
W zeszycie udostępniłem arkusz ćwiczeniowy, aby przećwiczyć te wyjaśnione sposoby działania Excela VBA skopiowanie zakresu do innego arkusza.
Wniosek
W tym artykule wyjaśniłem 8 różnych rodzajów łatwych i szybkich sposobów na Excela VBA skopiuj zakres do innego arkusza. Te różne sposoby pomogą Ci skopiować zakres z jednego arkusza do drugiego, a także z jednego arkusza do innego skoroszytu. Wreszcie, jeśli masz jakieś sugestie, pomysły i opinie, prosimy o komentarz poniżej.