В примере таблица ввода данных, макрос копирует диапазон. Worksheets("Движение товара").Range("B19:O23").Copy Как прописать чтобы копирование срабатывало только на тот диапазон, из условия (В19:О23),в котором заполнена ячейка из столбика "В"
В примере таблица ввода данных, макрос копирует диапазон. Worksheets("Движение товара").Range("B19:O23").Copy Как прописать чтобы копирование срабатывало только на тот диапазон, из условия (В19:О23),в котором заполнена ячейка из столбика "В"Senya_20
Я бы использовал автофильтр в области B19:O23 с отбором (отображением) строк, в которых заполнена ячейка из столбика B и далее копировал эти видимые строки на лист БД. Примерно таким кодом: [vba]
Код
Sub copyVisibleRows() Dim rng As Range On Error Resume Next Worksheets("Движение товара").ListObjects("Таблица22").Range.AutoFilter Field:=1, Criteria1:="<>" Set rng = Worksheets("Движение товара").Range("B19:O23").SpecialCells(xlCellTypeVisible) If Err = 0 Then rng.Copy Worksheets("БД Движения товара").Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValues Application.CutCopyMode = False End If Worksheets("Движение товара").ListObjects("Таблица22").Range.AutoFilter Field:=1 End Sub
[/vba] Обратите внимание, что подобное копирование из-под фильтра работает и при отборе несмежных строк в диапазоне B19:O23. Т.е., например, фильтр отобрал строки 1,2 и 4 - в БД они добавятся в конец списка как 3 последовательные строки.
Я бы использовал автофильтр в области B19:O23 с отбором (отображением) строк, в которых заполнена ячейка из столбика B и далее копировал эти видимые строки на лист БД. Примерно таким кодом: [vba]
Код
Sub copyVisibleRows() Dim rng As Range On Error Resume Next Worksheets("Движение товара").ListObjects("Таблица22").Range.AutoFilter Field:=1, Criteria1:="<>" Set rng = Worksheets("Движение товара").Range("B19:O23").SpecialCells(xlCellTypeVisible) If Err = 0 Then rng.Copy Worksheets("БД Движения товара").Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValues Application.CutCopyMode = False End If Worksheets("Движение товара").ListObjects("Таблица22").Range.AutoFilter Field:=1 End Sub
[/vba] Обратите внимание, что подобное копирование из-под фильтра работает и при отборе несмежных строк в диапазоне B19:O23. Т.е., например, фильтр отобрал строки 1,2 и 4 - в БД они добавятся в конец списка как 3 последовательные строки.Gustav