#excel #vba #filter
Вопрос:
В настоящее время мой код берет данные из таблицы, фильтрует данные по критериям в столбце, а затем вставляет данные в определенное место на отдельном листе.
Я пытаюсь, чтобы он скопировал все столбцы, кроме ColumnQ отфильтрованных данных, и вставил их в качестве значений на другой лист.
Мой текущий код находится на вершине, однако я хочу, чтобы он функционировал как второй бит кода.
Dim dndWS As Worksheet
Dim wb As Workbook
Set wb = ThisWorkbook
Set dndWS = wb.Worksheets("DO NOT DELETE")
With dndWS
.AutoFilterMode = False
With .Range("H3:Q500")
.AutoFilter Field:=9, Criterial1:="ColumnQ"
.SpecialCells(xlCellTypeVisible).Copy Destination:=wb.Worksheets("MASTER").Range("A22:I57")
End With
End With
Я хочу, чтобы код функционировал как таковой:
Dim dndWS As Worksheet
Dim wb As Workbook
Set wb = ThisWorkbook
Set dndWS = wb.Worksheets("DO NOT DELETE")
With dndWS
.AutoFilterMode = False
With .Range("H3:Q500")
.AutoFilter Field:=9, Criterial1:="ColumnQ"
ONLY SELECT/COPY RANGE H:P FROM FILTERED TABLE
PASTE AS VALUES TO wb.Worksheets("MASTER").Range("A22:I57")
End With
End With
Комментарии:
1. Насколько я знаю, у вас есть три варианта: 1) пройтись по всему диапазону данных, пропустить столбец Q, записать все значения в массив, затем вставить их в целевой лист, а затем отформатировать все. 2) скопируйте/вставьте в две операции, один раз для cols A-P, затем снова для R . 3) скопируйте/вставьте один раз, скопировав все столбцы, затем удалите Q с нового листа. Я думаю, что 3, вероятно, самый простой.
2. @ChrisStrickland Я выбрал вариант 3. Самый простой, но в то же время самый эффективный. Спасибо!
Ответ №1:
Насколько я знаю, у вас есть три варианта: 1) пройтись по всему диапазону данных, пропустить столбец Q, записать все значения в массив, затем вставить их в целевой лист, а затем отформатировать все. 2) скопируйте/вставьте в две операции, один раз для cols A-P, затем снова для R . 3) скопируйте/вставьте один раз, скопировав все столбцы, затем удалите Q с нового листа. Я думаю, что 3, вероятно, самый простой.