VBA Excel. Оператор If…Then…Else и функция IIf
Оператор If…Then…Else предназначен для передачи управления одному из блоков операторов в зависимости от результатов проверяемых условий.
Однострочная конструкция
Оператор If…Then…Else может использоваться в однострочной конструкции без ключевых слов Else, End If.
Синтаксис однострочной конструкции If…Then…
Компоненты однострочной конструкции If…Then…
- условие — числовое или строковое выражение, возвращающее логическое значение True или False;
- операторы — блок операторов кода VBA Excel, который выполняется, если компонент условие возвращает значение True.
Если компонент условие возвращает значение False, блок операторов конструкции If…Then… пропускается и управление программой передается следующей строке кода.
Многострочная конструкция
Синтаксис многострочной конструкции If…Then…Else
Компоненты многострочной конструкции If…Then…Else:
- условие — числовое или строковое выражение, следующее за ключевым словом If или ElseIf и возвращающее логическое значение True или False;
- операторы — блок операторов кода VBA Excel, который выполняется, если компонент условие возвращает значение True;
- пунктирная линия обозначает дополнительные структурные блоки из строки ElseIf [условие] Then и строки [операторы] .
Если компонент условие возвращает значение False, следующий за ним блок операторов конструкции If…Then…Else пропускается и управление программой передается следующей строке кода.
Самый простой вариант многострочной конструкции If…Then…Else:
Функция IIf
Функция IIf проверяет заданное условие и возвращает значение в зависимости от результата проверки.
Синтаксис функции
Компоненты функции IIf
- условие — числовое или строковое выражение, возвращающее логическое значение True или False;
- если True — значение, которое возвращает функция IIf, если условие возвратило значение True;
- если False — значение, которое возвращает функция IIf, если условие возвратило значение False.
Компоненты если True и если False могут быть выражениями, значения которых будут вычислены и возвращены.
Пример 4
Стоит отметить, что не зависимо от того, выполняется условие или нет, функция IIf вычислит оба выражения в параметрах если True и если False:
18 комментариев для “VBA Excel. Оператор If…Then…Else и функция IIf”
при ElseIf после Then выражение должно быть обязательно с новой строки
Спасибо, Александр!
Я изменил некоторые формулировки в статье, допускающие неоднозначное толкование. Кроме того, я решил проверить, что будет, если поместить при ElseIf выражение после Then, и вот что получилось:
Привет, Михаил!
Условие в вашей конструкции проверяется один раз:
И даже если в конструкции используется блок ElseIf . Then , для проверки условия используется первоначальное значение:
чем отличается однострочная и многострочная форма синтаксиса
Привет, Виктор!
Однострочная запись короче и работает только с одним условием.
Здравствуйте, Евгений!
Однострочная запись работает не только с одним условием.
Добрый вечер!
Здесь «одно условие» означает выражение, которое может состоять из нескольких входящий в него условий (лучше сказать «под-условий») и возвращает логическое значение True или False. Такое выражение может быть только одно в однострочной записи.
Второе условие расположено в многострочной записи после ключевого слова Then и операторов, выполняемых при истинном значении первого условия, и предваряется ключевым словом ElseIf.
Не знаю, не сравнивал. Измерьте скорость выполнения обоих вариантов с помощью функции MicroTimer.
Решить с помощью VBA
Определите, является ли заданное целое число А нечётным двузначным
числом.
Добрый день!
Согласен. Это выражение касается функции IIf. Исправил. Спасибо за бдительность!
Есть столбик с процентами выполнения плана. Если больше 70%,то цвет текста зеленый, если меньше 40% то цвет текста красный. Как это прописать у меня получается только покрасить весь столбец в красный. Помогите пожалуйста я всю голову словмал что не так.
Павел, если в ячейке с процентным форматом отображается 90%, то фактически в ней содержится число 0,9. Вам надо сравнивать значения ячеек не с 70 и 40, а с 0,7 и 0,4.
Евгений, я так пробовал, но тогда сразу подсвечивается красным вся переменная.
[expert_bq id=»1570″]Если вам необходимо найти данные в одном столбце в таблице и получить значение из другого столбца таблицы, то эта функция вам поможет. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] В приведенном примере видно, что выражение в первом аргументе возвращает ошибку деления на ноль, но так как оно вложено в нашу функцию, то ошибка перехватывается и подменяется вторым аргументов, а именно строкой «Делить на ноль нельзя», которую мы ввели самостоятельно. Вместо данной строки могли бы быть другие функции, все зависит от поставленной перед Вами задачи.Логические функции в Excel, примеры, синтаксис, использование логических выражений
- условие — числовое или строковое выражение, следующее за ключевым словом If или ElseIf и возвращающее логическое значение True или False;
- операторы — блок операторов кода VBA Excel, который выполняется, если компонент условие возвращает значение True;
- пунктирная линия обозначает дополнительные структурные блоки из строки ElseIf [условие] Then и строки [операторы] .
В группе команд Редактирование на вкладке Главная найдите и нажмите стрелку рядом с командой Автосумма, а затем выберите нужную функцию в раскрывающемся меню. В нашем случае мы выберем Сумма. Выбранная функция появится в ячейке.