Ребят, нет слов, одни эмоции. День бьюсь над следующей задачей.
На одном листе одновременно размещены три диапазона ячеек. Первый диапазон - с шапкой "январь", второй диапазон располагается под первым через 1 пустую строчку и имеет шапку "февраль". Третий диапазон расположен под вторым так же через строчку пустую и называется "текущие заявки". Нужно сделать цикл (или фиг его знает уже что) такой, чтобы проверял строки диапазона "Текущие заявки" и если в столбце U видел слово "факт" и в столбце W "фев/янв", то вырезал ее и переносил в диапазон "Январь" или "Февраль" соответственно.
Моя логика строится на задании диапазонов CurrentRegion. То есть, я определяю последнюю строку диапазона, вставляю вырезанные после нее. Все бы супер, и получается для одного раза в цикле. Но... Самая главная проблема заключается в том, что первая строка диапазона "Текущие заявки" при вырезании имеющихся всегда будет уходить вниз на количество вырезанных (в нашем случае при каждом круге цикла на 1).
Вот мой код для "Января" (сделал только один месяц) хотя бы реализовать для одного месяца.
Код
Sub ffff()
Zx = Range("B:B").Find("Текущие заявки").Offset(1, 0).Row
Zy = Range("B:B").Find("Текущие заявки").Offset(1, 0).Column
Set CR2 = Cells(Zx + 1, Zy).CurrentRegion
p1 = CR2.Row
p2 = CR2.Rows.Count
p3 = CR2.Row + CR2.CurrentRegion.Rows.Count - 1
For i = p1 To p3
If Cells(i, 21).Value = "ФАКТ" Then
If Cells(i, 19).Value = "янв" Then
Zx1 = Range("B:B").Find("янв").Offset(1, 0).Row
Zy1 = Range("B:B").Find("янв").Offset(1, 0).Column
Set Jan = Cells(Zx1, Zy1).CurrentRegion
j1 = Jan.Row
j2 = Jan.Rows.Count
j3 = Jan.Row + Jan.CurrentRegion.Rows.Count - 1
Rows(i).Select
Selection.Cut
Rows(j3 + 1).Insert
End If
End If
Next
Next
End Sub