Vba: jak skopiować widoczne linie na inny arkusz


Możesz użyć następującej składni w VBA, aby skopiować tylko widoczne wiersze z jednego arkusza do drugiego:

 SubCopyVisibleRows ()

    Dim sourceWS As Worksheet
    Dim destinationWS As Worksheet
    
    Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
    Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")

    sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
    destinationWS.Cells(1, 1).PasteSpecial
    Application.CutCopyMode = False
   
End Sub

To konkretne makro skopiuje każdy widoczny wiersz z zakresu A1:D999 w Arkuszu 1 i wklei je, zaczynając od komórki A1 w Arkuszu 2 .

Uwaga : Linia Application.CutCopyMode = False określa, że po uruchomieniu makra należy wyłączyć tryb wycinania i kopiowania.

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

Przykład: Skopiuj widoczne wiersze do innego arkusza za pomocą VBA

Załóżmy, że w Arkuszu 1 mamy następujący zbiór danych, który zawiera informacje o różnych koszykarzach:

Załóżmy teraz, że zastosujemy filtr do zbioru danych, aby wyświetlić tylko wiersze, w których nazwa zespołu jest równa Mavs lub Spurs:

Załóżmy teraz, że chcemy użyć VBA do skopiowania tylko widocznych komórek z Arkusza 1 do Arkusza 2.

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

 SubCopyVisibleRows ()

    Dim sourceWS As Worksheet
    Dim destinationWS As Worksheet
    
    Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
    Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")

    sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
    destinationWS.Cells(1, 1).PasteSpecial
    Application.CutCopyMode = False
   
End Sub

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

Zauważ, że każdy wiersz widoczny w Arkuszu 1 został skopiowany i wklejony do Arkusza 2 .

Uwaga nr 1 : W makrze użyliśmy xlCellTypeVisible , aby określić, że chcemy skopiować tylko widoczne komórki.

Uwaga #2 : Pełną dokumentację metody VBA Copy znajdziesz tutaj .

Dodatkowe zasoby

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

VBA: Jak znaleźć ostatnio używaną linię
VBA: skopiuj wiersze do innego arkusza na podstawie kryteriów
VBA: Jak wkleić same wartości bez formatowania

Dodaj komentarz

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