Vba: jak skopiować zakres do innego arkusza


Aby skopiować zakres komórek do innego arkusza, możesz użyć następującej składni w języku VBA:

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial

Application.CutCopyMode = False

End Sub

To konkretne makro skopiuje komórki z zakresu A1:C11 arkusza 1 i wklei je do zakresu zaczynającego się od komórki A1 arkusza 2 .

Uwaga : Linia Application.CutCopyMode = False określa, że tryb wycinania i kopiowania powinien być wyłączony po wykonaniu makra.

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Kopiuj zakres do innego arkusza za pomocą języka VBA

Załóżmy, że mamy następujący zestaw danych w arkuszu o nazwie Arkusz1 w programie Excel, który zawiera informacje o różnych koszykarzach:

Załóżmy, że mamy również inny arkusz o nazwie Arkusz2 , który jest obecnie pusty:

Załóżmy, że chcemy skopiować wszystkie wartości z zakresu A1:C11 z Arkusza1 i wkleić je, zaczynając od komórki A1 Arkusza2 .

W tym celu możemy utworzyć następujące makro:

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial

Application.CutCopyMode = False

End Sub

Kiedy uruchomimy to makro, w Arkuszu 2 otrzymamy następujące dane wyjściowe:

Zauważ, że wszystkie wartości z zakresu A1:C11 z Arkusza1 zostały skopiowane do Arkusza2 z komórki A1 .

Domyślnie wartości zostały wklejone z zachowaniem formatowania źródłowego.

Na przykład wartości wierszy nagłówka są pogrubione.

Jeśli chcesz wkleić tylko wartości bez formatowania źródłowego, możesz określić Paste:=xlPasteValues w następujący sposób:

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial Paste=xlPasteValues

Application.CutCopyMode = False

End Sub

Kiedy uruchomimy to makro, w Arkuszu 2 otrzymamy następujące dane wyjściowe:

Należy pamiętać, że do Arkusza2 skopiowane zostały tylko wartości (bez formatowania) z zakresu A1:C11 z Arkusza1 .

Uwaga : Pełną dokumentację metody VBA PasteSpecial można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak wkleić same wartości bez formatowania
VBA: Jak skopiować widoczne linie na inny arkusz
VBA: skopiuj wiersze do innego arkusza na podstawie kryteriów

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *