2013-04-30 6 views
2

Имеет проблему с функцией If, ElseIf, Else в VBA.VBA IF ElseIF Else

Мой код должен искать «Text1», elseIf нужно искать «Text2», иначе сделать заметку в файле журнала.

Проблема в том, что я не могу показаться, чтобы изменить параметры найти, как часть ELSEIF ..

ElseIf Selection.Find.ClearFormatting  
With Selection.Find 
    .Forward = False 
    .Text = "Text2" 
End With            
Selection.Find.Execute Then 

ELSEIF будет работать только тогда, когда я положил его Infront из выполнения линии, это означает, что им еще поиск «Text1», который не существует.

ElseIf Selection.Find.Execute Then 

Любая идея, где я ошибаюсь?

Полный код:

Sub Testing() 

    Dim LogFile As String 

    LogFile = "G:\ErrorLog.txt" 

    Selection.Find.ClearFormatting 
    With Selection.Find 
     .Forward = False 
     .Text = "Text1" 
    End With 

    If Selection.Find.Execute Then 

     MsgBox "Found Text1" 

     Selection.Find.ClearFormatting 
     With Selection.Find 
      .Forward = False 
      .Text = "Text2" 
     End With 

    ElseIf Selection.Find.Execute Then 

     MsgBox "Found Text2" 

    Else 

     Open LogFile For Append As #1 
     Print #1, Now & " " & "Text Field Error" & ": " 
     Close #1 

    End If 

End Sub 

ответ

4
**If Selection.Find.Execute Then** 
     MsgBox "Found Text1" 

     Selection.Find.ClearFormatting 
     With Selection.Find 
      .Forward = False 
      .Text = "Text2" 
     End With 

**ElseIf Selection.Find.Execute Then** 

Посмотрите ** ... Они ищут то же самое. Как он может отображать значение таким же? По крайней мере, он может найти только текст 1 или иначе, но не ElseIf. Таким образом, вы должны удалить ElseIf, чтобы получить If.

+0

Правильно получилось! Благодаря! –

Смежные вопросы