Страницы: 1
RSS
При одном значении в ячейке запускался Макрос1, при другом Макрос2, как это правильно записать?
 
Здравствуйте!
В ячейках L2 и N2 цифры.
Если L2>N2 то выполнить Макрос1, в противном случае Макрос2.
При выполнении этого кода ничего не происходит. Что тут не так?
Код
 If (L2 > N2) Then
   Application.Run "'2015-2018 base-leto.xlsm'!Мак1"
    Range("Таблица3[[#Totals],[таб]]").Select
ElseIf (L2 < N2) Then
   Application.Run "'2015-2018 base-leto.xlsm'!Мак2"
    Range("Таблица3[[#Totals],[ттт]]").Select
End If
Изменено: ser987 - 03.06.2018 18:30:41
 
Как минимум нужно взять в квадратные скобки L2 и N2. Или обращайтесь к ним через Range. А так, как написано у Вас, VBA воспринимает не как адреса ячеек, а просто переменные с именами L2 и N2. Ещё не помешает указать в явном виде листы, на которых эти ячейки находятся. Т.е. что-нибудь вроде такого Worksheets("Лист1").[L2] . Во-вторых, ElseIf замените на просто Else без условия.
 
Спасибо. Заработало!) ElseIf пришлось оставить, ругался и выделял строчку красным.
Код
If Worksheets(1).[L2>N2] Then
  Application.Run "'2015-2018 base-leto.xlsm'!Мак1"
   Range("Таблица3[[#Totals],[таб]]").Select
ElseIf Worksheets(1).[L2<N2] Then
  Application.Run "'2015-2018 base-leto.xlsm'!Мак2"
   Range("Таблица3[[#Totals],[ттт]]").Select
End If
Изменено: ser987 - 03.06.2018 18:30:26
 
Worksheets("Лист1").[L2] > Worksheets("Лист1"). [N2]  .  В строке с Else уберите всё, что после Else, там условие не нужно вообще. "Else" как раз и означает "в противном случае" или "иначе". Зачем там условие, если он относится к условию, заданному ранее.
 
Поправил, спасибо, ещё раз!
Страницы: 1
Наверх