2015-10-12 2 views
0

В настоящее время у меня есть небольшой бит VBA, который выполняет поиск критериев и делает базовое добавление на основе условий. Прекрасно работает и выглядит следующим образом:'If Then' цикл с копией и вставкой

Dim i As Long 
i = 6 
Do While Cells(i, "C").Value <> "" 
If Cells(i, "C").Value = "9/12/2015" And Cells(i, "E").Value = "9/13/2015" Then 
     Cells(i, "M").Value = Cells(i, "M").Value + 12 
End If 
i = i + 1 
Loop 

Теперь я хочу, чтобы принять его на следующий уровень, и вместо добавления 12 к колонку на основе критериев, выполните следующие действия:

-Выберите все строки прохождение обоих условий и копия & вставьте свои значения из Sheet1 в Sheet2

Я думаю, что копировать и вставлять часть будет довольно просто, но я не уверен в лучшем способе выбора разных строк на основе результата if ... then statement.

ответ

0
Dim i As Long: i = 6 
Dim r as Range 

Do While Cells(i, "C").Value <> "" 
    If Cells(i, "C").Value = "9/12/2015" And Cells(i, "E").Value = "9/13/2015" Then 
    if r is nothing then 
     set r = Cells(i, "M") 
    else 
     set r = application.union(r, Cells(i, "M")) 
    end if 
    End If 

    i = i + 1 
Loop 

if not r is nothing then 
    r.Copy Sheet2.Range("A1") 
end if 
+0

Спасибо за вход GSerg - я никогда не использовал приложение. Часть, что это делает? Также для следующего бита кода столбец M не имеет значения. Мне просто нужно выбрать все строки, для которых истинно утверждение «If Then», и скопировать и вставить эти строки в другой рабочий лист. – Willarci3

+0

@ Willarci3 https://msdn.microsoft.com/en-us/library/office/ff834621.aspx – GSerg

+0

@ Willarci3 Затем создайте диапазон, используя «Ячейки (i,« M »). EntireRow' вместо« Ячейки » (i, "M") '. – GSerg