Spis treści
Kiedy mamy do czynienia z wieloma arkuszami Excela, czasami musimy skopiować dane z jednego arkusza do drugiego.Wdrożenie VBA jest najskuteczniejszą, najszybszą i najbezpieczniejszą metodą wykonywania dowolnych operacji w Excelu. W tym artykule pokażemy, jak kopiowanie i wklejanie danych z jednego arkusza do drugiego w programie Excel z Makro VBA .
Pobierz Workbook
Darmowy ćwiczeniowy zeszyt Excela można pobrać stąd.
Kopiuj i wklej z jednego arkusza do drugiego.xlsm
15 metod z VBA do kopiowania i wklejania danych z jednego arkusza do drugiego w Excelu
W tym rozdziale poznasz 15 metod, jak możesz kopiowanie danych z jednego arkusza i wklejanie ich do innego z VBA w Excelu.
Powyżej znajduje się zbiór danych, który ten artykuł będzie traktował jako nasz przykład.
1. osadzone makro VBA do kopiowania i wklejania zakresu danych z jednego arkusza do drugiego
Kroki do kopiowanie i wklejanie zakresu danych z jednego arkusza do drugiego za pomocą VBA są opisane poniżej.
Kroki:
- Na początku naciśnij Alt + F11 na klawiaturze lub przejdź do zakładki Programista -> Visual Basic otworzyć Edytor Visual Basic .
- W wyskakującym oknie kodu, na pasku menu, kliknij Insert -> Moduł .
- Teraz, skopiować następujący kod oraz pasta do okno kodu .
Sub CopyPasteToAnotherSheet() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("CopyPaste").Range("B2") End Sub
Twój kod jest teraz gotowy do uruchomienia.
Ten fragment kodu będzie skopiowanie zakresu od B2 do F9 od arkusz nazwany Zbiór danych oraz wklejanie tych z B2 Zakres w CopyPaste imienny arkusz .
- Następnie naciśnij F5 na klawiaturze lub z paska menu wybrać Run -> Run Sub/UserForm. Możesz też po prostu kliknąć na mała ikona Play na pasku podmenu, aby uruchomić makro.
Spójrz na poniższy obrazek.
Na koniec wszystkie dane z Zbiór danych arkusz jest teraz skopiowany w CopyPaste arkusz w naszym skoroszycie Excela.
Read More: Excel VBA: Kopiowanie zakresu do innego skoroszytu
2. Makro VBA do kopiowania i wklejania danych z jednego aktywnego arkusza do drugiego w Excelu
W poprzednim rozdziale nie wymagaliśmy aktywacji arkusza, ale w tym rozdziale dowiemy się, jak kopiowanie i wklejanie danych w aktywnym arkuszu .
Kroki:
- W taki sam sposób jak poprzednio, otwórz Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- W oknie kodu, skopiować następujący kod oraz pasta to.
Sub CopyPasteToAnotherActiveSheet() 'Kopiuj dane z arkusza źródłowego Sheets("Dataset").Range("B2:F9").Copy 'Uaktywnij arkusz docelowy Sheets("Paste").Activate 'Wybierz zakres docelowy Range("B2").Select 'Wklej w miejscu docelowym ActiveSheet.Paste Application.CutCopyMode = False End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom kod jak pokazano powyżej i zobacz wynik na poniższym obrazku.
Tym razem wszystkie dane z. Zbiór danych arkusz jest teraz skopiowany w Pasta arkusz, który uaktywniliśmy przed skopiowaniem danych.
Read More: Excel Formuła do kopiowania tekstu z jednej komórki do innego arkusza
3. kopiowanie i wklejanie pojedynczych komórek z jednego arkusza do drugiego w Excelu za pomocą makra VBA
W powyższych rozdziałach dowiedziałeś się, jak kopiować i wklejać zakres danych z jednego arkusza do drugiego. Teraz zobaczysz, jak skopiuj i wklej, gdy masz pojedynczy fragment danych w swoim arkuszu kalkulacyjnym Excel.
Spójrz na poniższy obrazek, tj. Zakres arkusz składa się tylko z jednej wartości.
Zobaczymy, jak możemy skopiuj i wklej tę jedną komórkę do innego arkusza w Excelu z VBA .
Kroki:
- Jak pokazano powyżej, otwarte Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- W oknie kodu, skopiować następujący kod oraz pasta
Sub CopyPasteSingleRangeToAnotherSheet() Worksheets("Range").Range("B4").Copy Worksheets("CopyRange").Range("B2") End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten fragment kodu i zauważ następujący obraz.
Te pojedyncze dane " Skopiuj tę komórkę " w Komórka B4 w Zbiór danych arkusz jest teraz skopiowany w CopyRange arkusz w Komórka B2 .
Read More: Excel VBA do kopiowania tylko wartości do miejsca przeznaczenia (Makro, UDF i UserForm)
4. wklejanie skopiowanych danych z jednego arkusza do drugiego za pomocą metody PasteSpecial w makrze Excela
Możesz kopiować dane z jednego arkusza i wklejać je na różne sposoby za pomocą programu Excel PasteSpecial metoda z VBA Kroki, aby to zrobić, są podane poniżej.
Kroki:
- Najpierw należy otworzyć Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Drugi, skopiować następujący kod oraz pasta w oknie kodu.
Sub CopyPasteSpecial() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("PasteSpecial").Range("B2").PasteSpecial End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten kawałek kodu.
Spójrz na powyższy obrazek. Dane z Zbiór danych arkusz jest teraz przenoszony w PasteSpecial arkusz w Excelu.
Read More: VBA Wklej Specjalnie do kopiowania wartości i formatów w Excelu (9 przykładów)
5. Makro do kopiowania i wklejania danych poniżej ostatniej komórki z jednego arkusza do drugiego w Excelu
Mamy już pewne dane w Zbiór danych (pokazany w części wstępnej). Teraz spójrz na następną część tej sekcji. Mamy teraz pewne nowe dane w innym arkuszu o nazwie Ostatnia komórka .
To co chcemy tu zrobić to, będziemy dane dotyczące egzemplarza (komórki od B5 do F9) od Zbiór danych arkusz i pasta ci w poniżej ostatniej komórki tego Ostatnia komórka arkusz.
Kroki:
- Po pierwsze, otwórz Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Po drugie, skopiować następujący kod oraz pasta w oknie kodu.
Sub CopyPasteBelowTheLastCell() 'Ustaw zmienne Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Ustaw zmienne dla arkuszy źródłowego i docelowego Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Last Cell") 'Znajdź ostatnio używany wiersz w arkuszu źródłowym na podstawie danych w kolumnie B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Znajdź pierwszy pusty wiersz w arkuszu docelowym na podstawie danych w kolumnie B 'Właściwość Offset służy do przesunięcia skopiowanych danych o 1 wiersz w dół iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Skopiuj dane ze źródła i wklej w miejscu docelowym wsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B" & iTargetLastRow) End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten kod. Spójrz na poniższy obrazek.
Tutaj tylko wybrane dane z Zbiór danych arkusz jest obecnie skopiowany poniżej ostatniej komórki w Ostatnia komórka arkusz w Excelu.
Read More: Formuła do kopiowania i wklejania wartości w Excelu (5 przykładów)
6. Makro VBA do czyszczenia arkusza najpierw, a następnie kopiowania i wklejania do innego arkusza
Co zrobić, jeśli masz złe dane w istniejącym arkuszu i chcesz wyodrębnić tam oryginalne dane.
Spójrz na poniższy obrazek. Będziemy wyczyścić dane z Wyraźny zasięg arkusz i zapisać w nim dane z Zbiór danych arkusz z VBA kod.
Kroki:
- Po pierwsze, otwórz Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Po drugie, skopiować następujący kod oraz pasta w oknie kodu.
Sub ClearAndCopyPasteData() 'Ustaw zmienne Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Ustaw zmienne dla arkuszy źródłowych i docelowych Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Clear Range") 'Znajdź ostatnio używany wiersz w arkuszu źródłowym na podstawie danych w kolumnie B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Znajdź pierwszy pusty wiersz w arkuszu docelowym na podstawie danych w kolumnie B 'Właściwość Offset służy do przesunięcia skopiowanych danych o 1 wiersz w dół iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Wyczyść dane z zakresu docelowego wsTarget.Range("B5:F9" & iTargetLastRow).ClearContents 'Skopiuj dane ze źródła i wklej w miejscu docelowymwsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B5") End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten fragment kodu. Spójrz na poniższy obrazek.
Poprzednie dane w. Wyraźny zasięg arkusz jest teraz zastąpiony przez dane z Zbiór danych arkusz.
Read More: Makro do kopiowania danych z jednego skoroszytu do drugiego na podstawie kryteriów
7. Makro do kopiowania i wklejania danych z jednego arkusza do drugiego za pomocą funkcji Range.Copy
Teraz dowiemy się VBA kod na temat tego, jak kopiowanie i wklejanie danych z jednego arkusza do drugiego z Range.Copy funkcja w Excelu.
Kroki:
- Po pierwsze, otwórz Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Po drugie, skopiować następujący kod oraz pasta w oknie kodu.
Sub CopyWithRangeCopyFunction() 'Ustaw zmienne Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Ustaw zmienne dla arkuszy źródłowych i docelowych Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Copy Range") 'Skopiuj dane ze źródła i wklej w miejscu docelowym Call wsSource.Range("B2:F9").Copy(wsTarget.Range("B2")) End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten fragment kodu i spójrz na poniższy obraz.
Z powodzeniem powieliliśmy dane z Zbiór danych arkusz w Kopiowanie Zakres arkusz z Range.Copy funkcja.
Read More: Excel Formuła do kopiowania wartości komórki do innej komórki
Podobne lektury
- Excel VBA do kopiowania wierszy do innego arkusza na podstawie kryteriów
- Użyj VBA, aby wkleić wartości tylko bez formatowania w Excelu
- Jak skopiować i wkleić widoczne komórki tylko w Excelu (3 proste sposoby)
- Kopiuj i Wklej nie działa w programie Excel (9 powodów & Rozwiązania)
- Jak skopiować wiele wierszy w Excelu za pomocą makra (4 przykłady)
8. zaimplementuj kod makra do powielania danych z jednego arkusza do drugiego za pomocą właściwości USEDRANGE
Tym razem dowiemy się m.in. VBA kod na temat tego, jak kopiowanie i wklejanie danych z jednego arkusza do drugiego z UżywaneRange atrybut w Excelu.
Kroki:
- Najpierw należy otworzyć Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Drugi, skopiować następujący kod oraz pasta w oknie kodu.
Sub CopyWithUsedRange() 'Ustaw zmienne Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Ustaw zmienne dla arkuszy źródłowych i docelowych Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("UsedRange") 'Skopiuj dane ze źródła i wklej w miejscu docelowym Wywołaj wsSource.UsedRange.Copy(wsTarget.Cells(2, 2)) End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten kawałek kodu.
Jak widać na powyższym obrazku, udało nam się skopiować i wkleić dane z Zbiór danych arkusz w UżywaneRange arkusz z UŻYTKOWANIE nieruchomość.
Read More: Jak skopiować tę samą wartość do wielu komórek w programie Excel (4 metody)
9. Makro VBA do kopiowania i wklejania wybranych danych z jednego arkusza do drugiego w Excelu
Możesz kopiowanie i wklejanie tylko wybranych danych z jednego arkusza do drugiego z VBA Poniżej przedstawiono kroki, jak to zrobić.
Kroki:
- Najpierw należy otworzyć Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Drugi, skopiować następujący kod oraz pasta w oknie kodu.
Sub CopyPasteSelectedData() 'Ustaw zmienne Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Ustaw zmienne dla arkuszy źródłowych i docelowych Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Paste Selected") 'Kopiuj dane ze źródła wsSource.Range("B4:F7").Copy 'Wklej dane w miejscu docelowym Wywołaj wsTarget.Range("B2").PasteSpecial(Paste:=xlPasteValues) End Sub
Twój kod jest teraz gotowy do uruchomienia.
Ten kod będzie skopiuj tylko zakres od B4 do F7 od Zbiór danych arkusz i wklejanie tych z B2 Zakres w Wklej zaznaczone imienny arkusz .
- Następny, Uruchom ten kod.
Wreszcie, tylko wybrane dane z Zbiór danych są z powodzeniem kopiowane i wklejane do Wklej wybrane arkusz w skoroszycie Excela.
Read More: Jak zastosować VBA PasteSpecial i zachować formatowanie źródłowe w Excelu
10. Kod makra do powielania danych z jednego arkusza do drugiego przy pierwszym pustym wierszu
Tutaj zobaczymy, jak kopiowanie danych od Zbiór danych arkusz i pasta ci w pierwsza pusta komórka w innym arkuszu w Excelu z VBA .
Kroki:
- Najpierw należy otworzyć Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Drugi, skopiować następujący kod oraz pasta w oknie kodu.
Sub FirstBlankCell() Range("B2:F9", Range("B" & Rows.Count).End(xlUp)).Copy Sheet13.Range("A65536").End(xlUp) End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten kawałek kodu.
Zobacz na powyższym obrazku. Plansza13 W efekcie wykonywany kod wklejał skopiowane dane z tablicy. Zbiór danych arkusz w bardzo pierwsza komórka w Plansza13 arkusz w Excelu.
Read More: Kopiuj i wklej wartości do następnego pustego wiersza w Excelu VBA (3 przykłady)
11. wbudowane VBA do kopiowania i wklejania automatycznie filtrowanych danych z jednego arkusza Excela do drugiego
Możemy przefiltrować źródłowy zbiór danych oraz skopiować i wkleić do innego arkusza tylko przefiltrowane dane W tym artykule dowiesz się, jak to zrobić krok po kroku za pomocą VBA .
Kroki:
- Najpierw należy otworzyć Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Drugi, skopiować następujący kod oraz pasta w oknie kodu.
Option Explicit Sub AutoFilter() Range("B4:B101").AutoFilter 1, "Dean" Range("B4:F9").Copy Sheet17.Range("B" & Rows.Count).End(xlUp)(2) Range("B4").AutoFilter End Sub.
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten kod. Tylko wiersz, który ma " Dean " w nim, zostanie przefiltrowany i skopiowany w innym arkuszu.
Zauważ na powyższym obrazku. tylko przefiltrowane dane " Dean " z. B Kolumna jest teraz skopiowany i wklejony do Arkusz15. arkusz.
Read More: Jak kopiować i wklejać w Excelu za pomocą VBA (7 metod)
Podobne lektury
- Jak autofiltrować i kopiować widoczne wiersze w programie Excel VBA
- Kopiowanie unikalnych wartości do innego arkusza w programie Excel (5 metod)
- Jak skopiować scalone i przefiltrowane komórki w Excelu (4 metody)
- Run Time Error 1004: PasteSpecial Method of Range Class Failed
- Jak wkleić link i transpozycję w Excelu (8 szybkich sposobów)
12. wklejanie wiersza na dole zakresu z zachowaniem skopiowanej formuły z powyższego zakresu
Kiedy chcesz skopiuj wartość i zachowaj formułę wewnątrz niej podczas wklejania go w innym wierszu, a następnie za pomocą VBA kodem można łatwo wykonać zadanie.
Kroki:
- Najpierw należy otworzyć Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Drugi, skopiować następujący kod oraz pasta w oknie kodu.
Sub PasteRowWithFormulaFromAbove() Rows(Range("B" & Rows.Count).End(xlUp).Row).Copy Rows(Range("B" & Rows.Count).End(xlUp).Row + 1).Insert xlDown End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten kod i spójrz na poniższy obraz.
Na stronie ostatni wiersz jest kopiowany dokładnie tak, jak jest w rzędzie obok.
Read More: Jak automatycznie skopiować dane z jednej komórki do drugiej w Excelu
13. VBA do replikacji danych z jednego arkusza do innego arkusza w innym otwartym, ale nie zapisanym skoroszycie
Zwróć uwagę na nazwę naszego przykładowego skoroszytu, Źródło Podręcznik pracy . Skopiujemy dane z Zbiór danych arkusz z tego skoroszytu i wklej go do innego arkusza w innym skoroszycie o nazwie Zeszyt ćwiczeń "Destination to jest otwarte, ale jeszcze nie zapisane .
Kroki:
- Najpierw należy otworzyć Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Drugi, skopiować następujący kod oraz pasta w oknie kodu.
Sub CopyOneFromAnotherNotSaved() Workbooks("Source Workbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet1").Range("B2") End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten kod.
Dane z. Zbiór danych arkusz w Źródło Podręcznik pracy jest teraz skopiowany w Plansza1. arkusz w Zeszyt ćwiczeń "Destination .
Read More: Excel VBA: Kopiuj wartość komórki i wklej do innej komórki
14. Makro odtwarzające dane z jednego arkusza do innego arkusza w innym otwartym i zapisanym skoroszycie
Tym razem, będziemy skopiować dane od Zbiór danych arkusz z Źródło Podręcznik pracy oraz pasta do Plansza2 arkusz w Zeszyt ćwiczeń "Destination Ale teraz skoroszyt jest otwarty i zapisany .
Kroki:
- Najpierw należy otworzyć Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Drugi, skopiować następujący kod oraz pasta w oknie kodu.
Sub CopyOneFromAnotherSaved() Workbooks("Source Workbook.xlsm").Worksheets("Dataset").Range("B2:F9").Copy _ Workbooks("Destination Workbook.xlsx").Worksheets("Sheet2").Range("B2") End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten kod.
Dane z. Zbiór danych arkusz w Źródło Podręcznik pracy jest teraz skopiowany w Plansza2 arkusz w Zeszyt ćwiczeń "Destination . And look at the name, this skoroszyt został zapisany tym razem.
Read More: Jak kopiować i wklejać w programie Excel bez zmiany formatu
Zastosuj VBA do kopiowania i wklejania danych z jednego arkusza do innego arkusza w innym zamkniętym skoroszycie
W poprzednich dwóch częściach dowiedzieliśmy się, jak kopiować i wklejać dane z jednego arkusza do drugiego w innym otwartym skoroszycie. W tej części poznamy kod, jak kopiowanie i wklejanie danych po zamknięciu skoroszytu .
Kroki:
- Najpierw należy otworzyć Edytor Visual Basic od Deweloper zakładka i Wkładka a Moduł w oknie kodu.
- Drugi, skopiować następujący kod oraz pasta w oknie kodu.
Workbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet3").Range("B2") 'Zamknij docelowy skoroszyt po zapisaniu Workbooks("Destination Workbook").Close SaveChanges:=True End Sub
Twój kod jest teraz gotowy do uruchomienia.
- Następny, Uruchom ten kod.
Mimo, że tym razem skoroszyt został zamknięty, to i tak po wykonaniu kodu dane z Zbiór danych arkusz w Źródło Podręcznik pracy jest teraz skopiowany w Plansza3 arkusz w Zeszyt ćwiczeń "Destination .
Read More: Excel VBA do kopiowania danych z innego skoroszytu bez otwierania
Rzeczy do zapamiętania
- Metody od 1 do 14 wymagają otwarcia skoroszytów Wykonując kody makr przedstawione w tych metodach, nie zapomnij, aby mieć otwarty zarówno źródłowy, jak i docelowy skoroszyt.
- Podczas gdy twój skoroszyty są zapisywane, to należy zapisać nazwę pliku z typem pliku w kodzie. Kiedy skoroszyty nie są zapisywane, to należy zapisać tylko nazwę pliku bez podania typu pliku. Na przykład, jeśli twój skoroszyt jest zapisany , to napisz " Przeznaczenie. xlsx ", ale jeśli. skoroszyt nie jest zapisany , to napisz " Miejsce przeznaczenia " wewnątrz kodu.
Wniosek
Ten artykuł pokazał, jak kopiowanie i wklejanie danych z jednego arkusza do drugiego w Excelu z VBA Mam nadzieję, że ten artykuł był dla Ciebie bardzo korzystny. Czuj się swobodnie, jeśli masz jakieś pytania dotyczące tematu.