2016-06-21 2 views
-3

Я пытаюсь выяснить, как извлекать только определенные данные из листа 1, если общее время доставки или общее время доставки больше 0 на лист2. Я приложил фотографии листов и примеры данных, которые будут включены. Я знаю, как делать макрос с расширенным фильтром, но я не уверен, как обращаться с ним, потому что на листе на заголовках на стороне в столбце a вместо того, чтобы быть наверху.Извлечение данных с одного листа на другой по критериям

Благодаря

Sheet1

Sheet2

ответ

0
Dim sh1 as Worksheet 
Dim sh2 as Worksheet 
Dim sh1x, sh2y as Ineteger 'You have to set sh1x to the column you want to check & sh2y to the row you want the data to be transfered to 


Set sh1 = ActiveWorkbook.Sheets("Audit") 
Set sh2 = ActiveWorkbook.Sheets("Wait Time") 

If sh1.Cells(20, sh1x).Value > 1 or sh1.Cells(21, sh1x).Value > 1 then 
    sh2.Cells(sh2y, 1) = sh1.Cells(2, sh1x) 
    sh2.Cells(sh2y, 2) = sh1.Cells(3, sh1x) 
    sh2.Cells(sh2y, 3) = sh1.Cells(4, sh1x) 
    sh2.Cells(sh2y, 4) = sh1.Cells(5, sh1x) 
    sh2.Cells(sh2y, 5) = sh1.Cells(6, sh1x) 
    sh2.Cells(sh2y, 6) = sh1.Cells(7, sh1x) 
    sh2.Cells(sh2y, 7) = sh1.Cells(20, sh1x) 
    sh2.Cells(sh2y, 8) = sh1.Cells(21, sh1x) 
End If 

Если вы это делаете, как это вы должны установить sh1x в колонке вы хотите проверить и sh2y на строку, которую вы хотите, чтобы вставить к. Если вы хотите сделать это автоматически, установите sh1x в 2 и sh2y на 2 и просто создайте цикл, в котором вы увеличиваете значение sh1x и sh2y каждый раз, когда вы выполняете цикл (убедитесь, что они увеличивают значение их до или после IF).

Смежные вопросы