Помогите пожалуйста разобраться. Как выйти из цикла IF, если это условие не выполняется. Нужно чтобы макрос перешел на следующую ячейку и начал проверять ее. Спасибо!
Код
Do
If ActiveSheet.Cells(i, 1) = TB Then
ActiveSheet.Cells(i, 6) = 1
Count1Q = Count1Q + 1
ValueCell = Cells(i, 6)
End If
i = i + 1
Loop While (Count1Q < ThisWorkbook.Worksheets("Лист1").Range("C3"))
нет таких циклов. У Вас есть цикл Do Sobes, Ваше решение бессмысленно, т.к. у автора и так i увеличивается за пределами цикла. Т.е. и при выполнении условия и при невыполнении. Вы предложили тоже самое, но с большим количеством строк V, как вариант, но не факт. Возможно, там счетчик именно попадающих под условие значений. Corleone1, я бы проверил значение в ThisWorkbook.Worksheets("Лист1").Range("C3") и в Count1Q при каждой итерации. Возможно, условие либо не выполняется вовсе и Count1Q не увеличивается, либо в ThisWorkbook.Worksheets("Лист1").Range("C3") значение всегда меньше(например, отрицательное). Пример файла не помешал бы и описание того, как по Вашему это все должно работать. Может быть V прав - надо Count1Q тоже вынести за условие.
Corleone1, лучше приложите пример, т.к. слишком много вопросов к такой постановке проблемы. Навскидку: 1) Чему равно (и чем является) i и ТВ на входе? Или это не весь необходимый код, или у Вас ошибка. 2) На какую следующую ячейку? В какой строке? В строках 3 и 5 ячейки у Вас вполне перебираются на каждом проходе цикла. 3) Range("C3") я бы советовал заменить на Range("C3").Value, т.к. не объект диапазона сравниваете, а значение. Если ячейки должны перебираться в строке 9, то, соответственно, нужен внешний цикл и в Range("C3") передать его переменную, а не статический адрес ячейки C3. 4) Выход из цикла Do - строка Exit Do. Выхода из цикла If нет, потому что If - не цикл, а оператор условия.