Vba: как скопировать видимые строки на другой лист


Вы можете использовать следующий синтаксис в VBA для копирования только видимых строк с одного листа на другой:

 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

Этот конкретный макрос скопирует каждую видимую строку в диапазоне A1:D999 листа Sheet1 и вставит их, начиная с ячейки A1 листа Sheet2 .

Примечание . Строка Application.CutCopyMode = False указывает, что режим вырезания и копирования должен быть отключен после запуска макроса.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример. Копирование видимых строк на другой лист с помощью VBA.

Предположим, у нас есть следующий набор данных на листе 1 , который содержит информацию о различных баскетболистах:

Теперь предположим, что мы применяем фильтр к набору данных, чтобы отображать только строки, в которых название команды равно Mavs или Spurs:

Теперь предположим, что мы хотим использовать VBA для копирования только видимых ячеек с Листа 1 на Лист 2.

Для этого мы можем создать следующий макрос:

 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

Когда мы запускаем этот макрос, мы получаем следующий вывод в Sheet2 :

Обратите внимание, что каждая строка, видимая на Листе1 , была скопирована и вставлена на Лист2 .

Примечание № 1. Мы использовали xlCellTypeVisible в макросе, чтобы указать, что мы хотим копировать только видимые ячейки.

Примечание № 2. Полную документацию по методу копирования VBA можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: как найти последнюю использованную строку
VBA: скопировать строки на другой лист на основе критериев
VBA: Как вставить только значения без форматирования

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *