Страницы: 1
RSS
Как переделать в из цикла For i в Do While...
 
Здравствуйте Уважаемые!  
 
Столкнулся с новым для себя в VBA это циклы Do While. Как я предполагаю по крайней мере  
 
     
For Z = 0 To 3000 Step 1  
   
If Range("A4").Offset(Z) = "ÒÐÊ" Then  
Rows(Z + 4).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove  
   
Else  
End If  
     
Next Z  
 
Вот он код. Есть список  
 
ПИ  
ПИ  
ПИ  
ПИ  
ТРК  
ТРК  
ТРК  
ТРК  
 
Так вот надо что бы он пробежался по списку и перед ТРК вставил строку разделяющую. Просто пустую строку. Он по моему коду находит но вставляет 3000 раз. Ну оно и понятно тут надо использовать другой цикл. Только я не знаю как.  
 
Будьте добры подскажите пожалуйста
 
Можно и с for, только в данном случае бежать надо снизу вверх, иначе не добежит до низу :)
 
а и не надо другого цикла.. просто добавьте выход после выполнения условия  
 
For Z = 0 To 3000 Step 1  
 
If Range("A4").Offset(Z) = "ÒÐÊ" Then  
Rows(Z + 4).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove  
exit for  
Else  
End If  
 
Next Z  
 
вместо 3000 можно для чистоты эксперимента поставить rows.count-4
 
Опоздал чуть. Ну да ладно, можно и Ваш код не сильно переделывать:  
 
Sub tt()  
For Z = 3000 To 0 Step -1  
 
If Range("A4").Offset(Z) = "ТРК" Then  
Rows(Z + 4).Insert Shift:=xlDown  
 
Else  
End If  
 
Next Z  
 
End Sub  
 
Но вместо 3000 конечно надо кодом последнюю строку определять...
 
The Prist я хотел что бы один раз вставилась строка и всё. То есть даже не нужен цикл интересно.... сейчас попробую Ваши варианты.  
 
Спасибо за помощь, по результатам отпишусь
 
а я что говорил? и это только кажется, что в find нету цикла
Страницы: 1
Читают тему
Наверх