Когда ElseIf условие истинно, утверждения для else if не происходят

Private Sub cbo_Loc_Change() Dim Date1 As Date Dim Row As Integer Row = ActiveCell.Row If cbo_Loc.Value = TDS Then Date1a = Cells(Row, 5).Value T1a = DateAdd("ww", 6, Date1a) Cells(Row, 6).Formula = T1a T1b = DateAdd("ww", 8, Date1a) Cells(Row, 7).Formula = T1b ElseIf cbo_Loc.Value = SS Then T1a = DateAdd("M", 18, Date1a) Cells(Row, 6).Formula = T1a T2b = DateAdd("m", 6, Date1a) Cells(Row, 7).Formula = T1b End If End Sub 

Заявление If-Else выше должно добавить 6 и 8 недель до даты1a, когда условие if выполнено, и добавьте 18 и 24 месяца к date1a, когда еще, если условие выполнено. Когда выполняется условие ElseIf, утверждения под ним не выполняются. Кто-нибудь может взглянуть на него и найти, что может быть проблемой.

Благодаря,

Вам нужно установить значение «Date1a» для оператора ElseIf, потому что когда оператор If оценивается как false, оператор ElseIf не будет иметь значение «Date1a». Вы можете сделать это одним из следующих способов:

 Private Sub cbo_Loc_Change() Dim Date1 As Date Dim Row As Integer Row = ActiveCell.Row If cbo_Loc.Value = TDS Then Date1a = Cells(Row, 5).Value T1a = DateAdd("ww", 6, Date1a) Cells(Row, 6).Formula = T1a T1b = DateAdd("ww", 8, Date1a) Cells(Row, 7).Formula = T1b ElseIf cbo_Loc.Value = SS Then Date1a = Cells(Row, 5).Value T1a = DateAdd("M", 18, Date1a) Cells(Row, 6).Formula = T1a T2b = DateAdd("m", 6, Date1a) Cells(Row, 7).Formula = T1b End If End Sub 

или

 Private Sub cbo_Loc_Change() Dim Date1 As Date Dim Row As Integer Row = ActiveCell.Row Date1a = Cells(Row, 5).Value If cbo_Loc.Value = TDS Then T1a = DateAdd("ww", 6, Date1a) Cells(Row, 6).Formula = T1a T1b = DateAdd("ww", 8, Date1a) Cells(Row, 7).Formula = T1b ElseIf cbo_Loc.Value = SS Then T1a = DateAdd("M", 18, Date1a) Cells(Row, 6).Formula = T1a T2b = DateAdd("m", 6, Date1a) Cells(Row, 7).Formula = T1b End If End Sub 

Любой из них будет работать и должен решить вашу проблему.

  • Несколько текстовых условий в инструкции IF в Excel
  • Функция IF в excel слишком длинная. Как упростить?
  • VBA Удаляет всю строку, если значение меньше заданного значения - удаляет неправильные строки
  • Добавление значения к SUM
  • Использование косвенной функции в выражении IF с кавычками
  • IF / AND между двумя датами Условное форматирование
  • Скопируйте значение переменной и вставьте его на другой лист.
  • Сравнение значений внутри строки
  • Вложенные функции IF в excel с пустыми ячейками
  • Использование оператора IF для условного форматирования - VBA
  • Передача данных с использованием инструкций IF THEN из листов 1 - 2
  • Interesting Posts

    Как удалить финализированные значения из сводной таблицы Excel

    Как проверить, появляется ли набор строк в списке предварительно определенных наборов в VBA?

    Выделите дубликаты, игнорируя одну строку

    Разделение текстовых столбцов

    Excel VBA application.match возвращает ошибку 13 (несоответствие типа) в CSV-файле

    Макрос ожидания приостановки / времени Excel

    Игнорирование DIV / 0! ошибки при расчете MEDIAN

    Как перебрать выбранные ячейки в Excel с помощью Applescript?

    Формула таблицы для суммирования значений над A, если B не находится в списке значений

    Подсчет числа месяцев между двумя датами в Excel

    Могу ли я сделать структурированную ссылку абсолютной в excel 07?

    Автозаполнение с использованием LastRow

    Сравнение столбцов Excel 2: дублировать в одном столбце, но уникально как пара

    Цитирование через различные типы файлов в папке (VBA)

    Размещение переменной внутри вставленной формулы

    Давайте будем гением компьютера.