Следующие будут скопировать данные из таблицы в Sheet1 в Sheet2, где второй столбец не равен 0 - с использованием Autofilter таблицы.
Я должен был добавить 1 секунду application.wait
, чтобы фильтр мог применяться перед копированием. Это может потребоваться увеличить в зависимости от размера таблицы. Возможно, кто-то может помочь с более надежным методом ожидания применения фильтра.?
Dim source_sheet As Worksheet
Dim destination_sheet As Worksheet
Set source_sheet = Sheets("Sheet1")
Set destination_sheet = Sheets("Sheet2")
With source_sheet.ListObjects("Table1").Range
.AutoFilter Field:=2, Criteria1:="<>0"
Application.Wait 1
.Copy Destination:=destination_sheet.Range("A1")
.AutoFilter Field:=2
End With
Стоит отметить, что выход на Лист2 не в форме таблицы правда. Тем не менее, не должно быть сложно записать макрос, в котором вы конвертируете его в таблицу, чтобы получить этот фрагмент кода.
Позвольте мне посмотреть, получилось ли это: вам нужно скопировать данные из таблицы 1, которая не равна 0, и вставить ее в таблицу2? Нужно ли удалять любые строки? На втором изображении осталось 0 на третьей строке, почему? –
http://stackoverflow.com/questions/12299898/vba-copy-and-paste-table-row-to-another-table – Vityata
это ошибка. он должен удалить все значения «0» –