Здравствуйте! В ячейках 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
Как минимум нужно взять в квадратные скобки 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
Worksheets("Лист1").[L2] > Worksheets("Лист1"). [N2] . В строке с Else уберите всё, что после Else, там условие не нужно вообще. "Else" как раз и означает "в противном случае" или "иначе". Зачем там условие, если он относится к условию, заданному ранее.