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