Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как можно проскочить ненужную итерацию в цикле?

248
19 апреля 2008 года
Dmitry2064
590 / / 06.12.2006
Такой вопрос. Если в цикле есть дополнит. условие, по которому надо пропустить операции цикла и перейти к след. итерации, то можно ли как-то это записать, кроме как переход на метку:
Код:
For i = 1 To 500
    With Selection.Find
        .Text = " ^?^? ": .Replacement.Text = "": .Forward = True: .Wrap = wdFindStop: .Format = True
    End With
    Selection.Find.Execute
If Selection.Find.Found = False Then GoTo Ent2
ss = Selection
If InStr(ss, "XE") Then GoTo sk [COLOR="Navy"]' пока только так умею[/COLOR]
    [COLOR="DarkGreen"]Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.TypeText Text:=" "
    Selection.MoveRight Unit:=wdCharacter, Count:=1[/COLOR]
sk:
    Next i
Ent2:

Т.е. можно ли как-то не выполнять "зеленые" операции, если есть доп. условие?

Спасибо.
5.9K
20 апреля 2008 года
SPB-667
119 / / 23.06.2007
Попробуй вместо этой части кода:
 
Код:
If InStr(ss, "XE") Then GoTo sk
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.TypeText Text:=" "
    Selection.MoveRight Unit:=wdCharacter, Count:=1
sk:


использовать эту:

 
Код:
If InStr(ss, "XE") > 0 Then
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.TypeText Text:=" "
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    End IF
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог