Поделиться через


Использование операторов If...Then...Else

Используйте оператор If...Then...Else для выполнения определенного оператора или блока операторов в зависимости от значения условия. Операторы If...Then...Else могут быть вложены в любое необходимое число слоев.

Однако для удобства читаемости лучше использовать оператор Select Case вместо нескольких уровней вложенных операторов If...Then...Else.

Выполнение операторов, если условие равно True

Чтобы выполнить только один оператор, когда условие равно True, используйте однострочный синтаксис оператора If...Then...Else. В следующем примере показано однострочное синтаксис с пропусками Elseключевое слово.

Sub FixDate() 
    myDate = #2/13/95# 
    If myDate < Now Then myDate = Now 
End Sub

Чтобы выполнить несколько строк кода, необходимо использовать многострочный синтаксис. Этот синтаксис включает оператор End If, как показано в примере ниже.

Sub AlertUser(value as Long) 
    If value = 0 Then 
        AlertLabel.ForeColor = "Red" 
        AlertLabel.Font.Bold = True 
        AlertLabel.Font.Italic = True 
    End If 
End Sub

Выполнение определенных операторов, если условие равно True, и выполнение других операторов, если оно равно False

Используйте оператор If...Then...Else для определения двух блоков исполняемых операторов: один блок выполняется, если условие равно True, а другой блок выполняется, если условие равно False.

Sub AlertUser(value as Long) 
    If value = 0 Then 
        AlertLabel.ForeColor = vbRed 
        AlertLabel.Font.Bold = True 
        AlertLabel.Font.Italic = True 
    Else 
        AlertLabel.Forecolor = vbBlack 
        AlertLabel.Font.Bold = False 
        AlertLabel.Font.Italic = False 
    End If 
End Sub

Проверка второго условия, если первое условие равно False

Можно добавить операторы ElseIf в оператор If...Then...Else для проверки второго условия, если первое условие равно False. Например, в следующей процедуре функция вычисляет бонус на основе классификации задания. Оператор, следующий за оператором Else, выполняется в том случае, если условия во всех операторах If и ElseIf равны False.

Function Bonus(performance, salary) 
    If performance = 1 Then 
        Bonus = salary * 0.1 
    ElseIf performance = 2 Then 
        Bonus = salary * 0.09 
    ElseIf performance = 3 Then 
        Bonus = salary * 0.07 
    Else 
        Bonus = 0 
    End If 
End Function

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.