Excel VBA Kopiuj zakres do innego arkusza (8 najprostszych sposobów)

  • Udostępnij To
Hugh West

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.xlsm

8 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 Arkusz roboczy typu, lCopyLastRow oraz lDestLastRow 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.

Hugh West jest bardzo doświadczonym trenerem i analitykiem Excela z ponad 10-letnim doświadczeniem w branży. Posiada tytuł licencjata w dziedzinie rachunkowości i finansów oraz tytuł magistra administracji biznesowej. Hugh ma pasję do nauczania i opracował unikalne podejście do nauczania, które jest łatwe do naśladowania i zrozumienia. Jego specjalistyczna wiedza na temat programu Excel pomogła tysiącom studentów i profesjonalistów na całym świecie doskonalić swoje umiejętności i osiągać doskonałe wyniki w karierze. Za pośrednictwem swojego bloga Hugh dzieli się swoją wiedzą ze światem, oferując bezpłatne samouczki programu Excel i szkolenia online, aby pomóc osobom indywidualnym i firmom w pełni wykorzystać swój potencjał.