Excel запуск макроса по условию в ячейке

Предположим, у меня есть несколько кодов макросов в моей книге, и теперь я хочу запускать эти коды на основе значения ячейки. В этой статье я расскажу о нескольких ситуациях, с которыми вы можете столкнуться в повседневной работе при использовании Excel.

Запустить или запустить макрос, если значение ячейки больше или меньше определенного значения с кодом VBA

Запустить или запустить макрос, если значение ячейки равно определенному тексту с кодом VBA


стрелка синий правый пузырь Запустить или запустить макрос, если значение ячейки больше или меньше определенного значения с кодом VBA

Например, если значение в ячейке A1 находится в диапазоне от 10 до 50, запустите macro1, а если значение больше 50, запустите macro2. Чтобы решить эту задачу в Excel, примените следующий код VBA.

1. Щелкните правой кнопкой мыши вкладку листа, на которой вы хотите выполнить макрос на основе значения ячейки, а затем выберите Просмотреть код из контекстного меню, а в открывшемся Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустой модуль:

Код VBA: запуск макроса, если значение ячейки больше или меньше:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        Select Case Target.Value
        Case 10 To 50: Macro1
        Case Is > 50: Macro2
        End Select
    End If
End Sub

макрос запуска документа на основе значения ячейки 1

Внимание: В приведенном выше коде:

A1 это ячейка, которая содержит конкретное значение, на основе которого вы хотите запустить макрос;

Случай с 10 по 50: Macro1: это означает, что если значение находится между 10 и 50, запустить Macro1;

Случай> 50: Macro2: это означает, что если значение больше 50, запустить Macro2.

Пожалуйста, измените названия макросов и критерии по своему усмотрению, и вы также можете добавить дополнительные критерии после Коробка скрипты.

2. Затем сохраните и закройте это окно кода, теперь, когда значение, которое вы вводите в ячейке A10, составляет от 50 до 1, будет запущен макрос Macro1, если введенное значение больше 50, выполняется макрос Macro2.


стрелка синий правый пузырь Запустить или запустить макрос, если значение ячейки равно определенному тексту с кодом VBA

Если вы хотите запускать макрос на основе определенного текста в ячейке, например, для запуска макроса 1, если введен текст «Удалить», и запуска макроса 2, если введен текст «Вставить». Следующий код может оказать вам услугу.

1. Щелкните правой кнопкой мыши лист, на котором вы хотите выполнить макрос на основе значения ячейки, а затем выберите Просмотреть код из контекстного меню, а в открывшемся Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустой модуль:

Код VBA: запустить макрос, если значением ячейки является определенный текст

Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "Delete" Then
 Call Macro1
End If
If target.Value = "Insert" Then
Call Macro2
End If
End Sub 

макрос запуска документа на основе значения ячейки 2

Внимание: В приведенном выше коде «Удалить(Основной ключ) и Вставить»- это тексты ячеек, на основе которых вы хотите запускать макросы, и Macro1 и Macro2 макросы, которые вы хотите выполнить на основе текста. Пожалуйста, измените их по своему усмотрению.

2. Затем сохраните этот код и закройте окно, теперь при вводе текста «Удалить» в ячейку A1 срабатывает макрос 1, если вводится текст «Вставить», выполняется макрос 2.


Статьи по теме:

Как запустить макрос при изменении значения ячейки в Excel?

Как запустить макрос автоматически перед печатью в Excel?

Как запустить макрос на основе значения, выбранного из раскрывающегося списка в Excel?

Как запустить макрос, щелкнув гиперссылки в Excel?

Как запустить макрос, когда лист выбран из книги?


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

 

Polisimus

Пользователь

Сообщений: 15
Регистрация: 01.01.1970

Пусть ячейка A1 принимает только два значения: 1 или 0. Как только значение в этой ячейке принимает 1, тут же должен автоматически запускаться макрос (под именем Put-record; он вставляет строку в таблице). Если ячейка принимает значение 0 (или, допустим, какое-либо иное значение, отличное от 1), то ничего не требуется специально запускать, пока ячейка вновь не станет равной единице. Нужен VBA-код этого макроса, который бы сам мониторил ячейку A1 и запускал бы другой макрос Put-record каждый раз, как только значение ячейки A1 сменится с нуля (или с какой-л. другой цифры или значения) на единицу.

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Вставьте этот код в модуль нужного листа.  
Private Sub Worksheet_Change(ByVal Target As Range)  
  If Not Intersect(Target, Range(«A1»)) Is Nothing Then  
     If Target = 1 Then  
        MsgBox «Здесь вызываем Ваш макрос»  
     End If  
  End If  
End Sub

 

Polisimus

Пользователь

Сообщений: 15
Регистрация: 01.01.1970

Private Sub Worksheet_Change(ByVal Target As Range)  
If Not Intersect(Target, Range(«A1»)) Is Nothing Then  
If Target = 1 Then  
MsgBox «Put_record»  
End If  
End If  
End Sub  

  Но этот код требует дополнительного подтверждения запуска макроса Put_record  
Очень нужно, чтоб Excel без дополнительных вопросов запускал макрос Put_record, как только A1 становится равным 1

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Как все запущено…  
Вместо    
MsgBox «Здесь вызываем Ваш макрос»  
надо просто вставить имя вашего макроса — без кавычек  
Private Sub Worksheet_Change(ByVal Target As Range)  
If Not Intersect(Target, Range(«A1»)) Is Nothing Then  
If Target = 1 Then  
Put_record  
End If  
End If  
End Sub

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Polisimus

Пользователь

Сообщений: 15
Регистрация: 01.01.1970

Хорошо, но можно, я попробовал, и так:  

  Private Sub Worksheet_Change(ByVal Target As Range)  
If Not Intersect(Target, Range(«A1»)) Is Nothing Then  
If Target = 1 Then  
Application.Run «‘auto-put-record.xls’!Put_record»  
End If  
End If  
End Sub  

  Этот код работает без вопросов, но сейчас попробую и ваш. Здесь auto-put-record.xls — имя файла.

 

Polisimus

Пользователь

Сообщений: 15
Регистрация: 01.01.1970

И ваш код работает. Спасибо вам и Юрий М !

 

Polisimus

Пользователь

Сообщений: 15
Регистрация: 01.01.1970

Если A1 является формулой, т.е. ссылается на другие ячейки, то все эти выше указанные коды — не работаю. Что делать?

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

использовать не Private Sub Worksheet_Change(ByVal Target As Range)  
а  
Private Sub Worksheet_Calculate()  
If [A1] = 1 Then
Put_record  
End If  
End Sub  

  Либо так(одно и то же, но меньше строк)  
Private Sub Worksheet_Calculate()  
If [A1] = 1 Then Put_record
End Sub

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Polisimus

Пользователь

Сообщений: 15
Регистрация: 01.01.1970

Макрос автоматически вставляет строки не один раз, как требуется, а бесконечное число раз — пока не выдаст ошибку (

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

При вставке строк событие Calculate Или Change происходит? Вот макрос и будет срабатывать. Нужно отключить событие.

 

ytk5kyky

Пользователь

Сообщений: 2410
Регистрация: 01.01.1970

Отключайте события в событиях:  
Private Sub Worksheet_Calculate()  
Application.EnableEvents = False  
код  
Application.EnableEvents = True  
End Sub

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Значит надо завести глобальную  переменную и на неё ориентироваться.  
Public bInsert as Boolean  
Private Sub Worksheet_Calculate()  
If [A1] = 1 Then
if bInsert = false then Put_record:bInsert = true  
Else  
bInsert = false  
end if  
End Sub

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Polisimus

Пользователь

Сообщений: 15
Регистрация: 01.01.1970

{quote}{login=Лузер™}{date=05.08.2009 01:51}{thema=}{post}Отключайте события в событиях:  
Private Sub Worksheet_Calculate()  
Application.EnableEvents = False  
код  
Application.EnableEvents = True  
End Sub{/post}{/quote}  

  T.е. так:  

  Private Sub Worksheet_Calculate()  
Application.EnableEvents = False  
If [A1] = 1 Then
Put_record  
End If  
Application.EnableEvents = True  
End Sub  

  Этот код приводит к следующему дефекту: при нажатии клавиши «Enter», на любом месте, на любой ячейке Листа1, если ячейка A1 все еще остается = 1, запускается макрос Put_record. Можно ли устранить этот дефект.

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

{quote}{login=Polisimus}{date=05.08.2009 02:24}{thema=Re: }{post}при нажатии клавиши «Enter», на любом месте, на любой ячейке Листа1, если ячейка A1 все еще остается = 1, запускается макрос Put_record. Можно ли устранить этот дефект.{/post}{/quote}  

  Я Вам написал код, который будет вставлять строку только один раз — при изменении значения в ячейке А1.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Polisimus

Пользователь

Сообщений: 15
Регистрация: 01.01.1970

{quote}{login=The_Prist}{date=05.08.2009 01:53}{thema=}{post}Значит надо завести глобальную  переменную и на неё ориентироваться.  
Public bInsert as Boolean  
Private Sub Worksheet_Calculate()  
If [A1] = 1 Then
if bInsert = false then Put_record:bInsert = true  
Else  
bInsert = false  
end if  
End Sub{/post}{/quote}  

    А этот код привел к очередному зацикливанию (код находится в модуле Листа1)

 

ytk5kyky

Пользователь

Сообщений: 2410
Регистрация: 01.01.1970

Polisimus, Я Вам дал пример для одного события. Отключать надо везде, что Вам и посоветовал Юрий М.

 

Polisimus

Пользователь

Сообщений: 15
Регистрация: 01.01.1970

{quote}{login=Юрий М}{date=05.08.2009 01:51}{thema=}{post}При вставке строк событие Calculate Или Change происходит? Вот макрос и будет срабатывать. Нужно отключить событие.{/post}{/quote}  

  Вот макрос вставки:  
Sub Put_record()  

     Rows(«7:7»).Select  
   Selection.Insert Shift:=xlDown  
   Range(«A8»).Select  
   Selection.AutoFill Destination:=Range(«A7:A8»), Type:=xlFillDefault  
   Range(«A7:A8»).Select  
   Range(«A8»).Select  
   Selection.Copy  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
       :=False, Transpose:=False  
   Application.CutCopyMode = False  
   Range(«A4»).Select  
End Sub  

  А вот формула в ячейке A7 =A$4+A$5  
При этом A1 — ссылается на другие ячейки

 

Polisimus

Пользователь

Сообщений: 15
Регистрация: 01.01.1970

С вашей помощью и с помощью своей интуиции. Ваши коды + плюс интуиция — вот что вышло:  

  Public bInsert As Boolean  
Private Sub Worksheet_Calculate()  
Application.EnableEvents = False  
If [A1] = 1 Then
If bInsert = False Then Put_record: bInsert = True  
Else  
bInsert = False  
End If  
Application.EnableEvents = True  
End Sub  

    Спасибо всем вам, господа программисты, и моей интуиции.

 

Кажется нашел что нужно. Подскажите каким образом изменить код что бы второй макрос удалял действия первого макроса

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Запишите макрорекордером все действия, которые требуются для «восстановления» после работы первого макроса. Может Вы про «откат» до момента работы первого макроса?

 

При выборе «1» у меня вставляется таблица (макрос1), если я  выберу «2» то эта таблица должна удалиться (макрос2). Я понимаю что тот же самый код только с другими значениями может использоваться. Вот только как их связать, эти коды, я не знаю.

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Ну так и запишите удаление этой таблицы.

 

{quote}{login=Юрий М}{date=09.09.2010 03:42}{thema=}{post}Ну так и запишите удаление этой таблицы.{/post}{/quote}  
Макрос я записал а как его запустить при выборе «2»?

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

А я знаю где у Вас выбирается «1»?

 

Извините, на примере выше указанного кода A1

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

If [A1] = 1 Then
Call Макрос1  
ElseIf [A1] = 2 Then
Call Макрос2  
End If

 

{quote}{login=Юрий М}{date=09.09.2010 03:53}{thema=}{post}If [A1] = 1 Then
Call Макрос1  
ElseIf [A1] = 2 Then
Call Макрос2  
End If{/post}{/quote}  
Не получается, посмотрите пожалуйста вложение

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Удалите всё из модуля листа и вставьте туда этот код:  
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Target.Cells.Count > 1 Then Exit Sub  
   If Not Intersect(Target, Range(«A1»)) Is Nothing Then  
       If Target = 1 Then  
           Call Макрос1  
           ElseIf Target = 2 Then  
           Call Макрос2  
       End If  
   End If  
End Sub

 

Заработало, ура. Спасибо!

 

or_evgen

Пользователь

Сообщений: 6
Регистрация: 01.01.1970

#30

30.10.2011 13:34:07

Public bInsert As Boolean  
Private Sub Worksheet_Calculate()  
Application.EnableEvents = False  
If [A1] = 1 Then
If bInsert = False Then Put_record: bInsert = True  
Else  
bInsert = False  
End If  
Application.EnableEvents = True  
End Sub  

  А как изменить этот код, чтобы он запускал второй макрос (Put_record2) при значении А1 = 2, 3, 5?

В Excel множество функций, но некоторые возможности не видны на первый взгляд. Неудивительно, ведь неизвестно, что может пригодиться пользователю, поэтому нет смысла выносить все на основную панель. Часто нужно выполнить какое-то действие при определенном условии, решаемое формулой. Но что, если вам необходимо выполнять действие/макрос при изменении ячейки листа Excel. Это тоже можно сделать при помощи макроса VBA. А как запустить макрос при изменении ячейки?

Чтобы запустить макрос (действие) при изменении данных в ячейке, существует несколько возможностей. Мне больше всего нравится эта конструкция:

Содержание

  • Макрос, выполняемый при изменении ячейки
  • Как запустить макрос при изменении ячейки?
  • Похожие статьи

Макрос, выполняемый при изменении ячейки

Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("A1")) Is Nothing Then
   If Target = 0 Then
     MsgBox "Запустите Ваше действие"
   End If
 End If
End Sub

Вставьте вместо MsgBox «Запустите Ваше действие» ваш код. Полезные макросы можно посмотреть в этой статье. Для этого макроса если, ячейка А1 становится нулевой, то появляется сообщение (MsgBox) «Запустите Ваше действие».

Как запустить макрос при изменении ячейки?

Сперва включите вкладку Разработчик. Затем пройдите в меню Visual Basic, первый значок слева на картинке (или нажмите Alt+f11):

изменение ячейки

Важно! Чтобы запустить код типа Worksheet_Change, необходимо записать код не в модуль макроса, а в саму книгу! Подробнее здесь:

макрос при изменении ячейки

Выберите нужную книгу и нужный лист (в примере Лист1), кликнув два раза по листу и в правом окне вставьте код, указанный выше. Если вам нужно, чтобы ваше действие выполнялось, когда ячейка изменяет значение на заполненную, то нужно изменить текст Target = 0 на Target <> 0.

Лично я рекомендую добавить больше условий, при каких действиях будет выполняться ваше действие, чтобы макрос не запускался при любом изменении. Вообще надо быть аккуратным с этой функцией. Бывает и такое — вы забываете, что есть макрос с условиями, а информация изменяется, можно даже не заметить этого

Запуск макроса (процедуры) из кода VBA Excel при изменении значения ячейки вручную или программным способом, а также при нажатии клавиши Delete.

Запуск макроса при изменении ячейки

Пример кода

Код VBA Excel для запуска макроса (процедуры) при изменении значения ячейки на рабочем листе:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Application.Intersect(Range(«A1:D8»), Range(Target.Address)) Is Nothing Then

        MsgBox «Значение ячейки « & Target.Address & » изменено.»

    End If

End Sub

Range("A1:D8") — это диапазон, при изменении значения любой ячейки которого, произойдет выполнение функции MsgBox. Диапазон может состоять из одной ячейки.

Код размещается в модуле рабочего листа, при изменении значения ячейки на котором следует запустить макрос (процедуру).

Вместо функции MsgBox в приведенном коде следует разместить ссылку на исполняемую процедуру (макрос) VBA Excel.

Примечания

  • Макрос будет запущен при изменении значения ячейки вручную или программным способом, а также при нажатии клавиши Delete.
  • Вызываемая процедура будет запущена и в том случае, если в ячейку будет записано то же самое значение, которое в ней и было. Например, в ячейке было число 28, и в нее записали вручную или программно число 28; или нажали клавишу Delete на пустой ячейке.
  • Макрос не будет запущен при изменении значения ячейки с формулой в результате ее пересчета.

Исключение ложного срабатывания

Если в качестве диапазона указать только одну ячейку, можно исключить срабатывание кода VBA Excel при записи в ячейку того же значения. Для этого необходимо использовать переменную уровня модуля, чтобы с ее помощью контролировать факт изменения или неизменения значения в указанной ячейке.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Option Explicit

Dim x

Private Sub Worksheet_Activate()

x = Range(«C4»)

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Application.Intersect(Range(«A1:D8»), Range(Target.Address)) Is Nothing _

    And x <> Range(«C4») Then

        MyMsgBox

        x = Range(«C4»)

    End If

End Sub

Private Sub MyMsgBox()

    MsgBox «Значение ячейки « & «C4» & » изменено на « & Chr(34) & Range(«C4») & Chr(34)

End Sub

В это примере функция MsgBox вынесена в отдельную процедуру, которая вызывается при изменении значения в ячейке C4.

Значение ячейки C4 присваивается переменной x при активации рабочего листа и, затем, перезаписывается при каждой перезаписи значения в ячейке.

Код этого примера размещен в модуле рабочего листа, но код вызываемой процедуры может быть вынесен из него в другой модуль.


Запуск макроса по условию

ant6729

Дата: Суббота, 11.03.2017, 23:45 |
Сообщение № 1

Группа: Проверенные

Ранг: Ветеран

Сообщений: 533


Репутация:

2

±

Замечаний:
40% ±


Excel 2010

[vba]

Код

Sub macro345()
    If Range(«G6»).Value = Range(«G9»).Value Then
            Application.Run «Макрос6»
Else
    Range(«G6»).Value > Range(«G9»).Value
             Application.Run «Макрос7»

End If
End Sub

[/vba]

Прошу подсказать на счет правильности написанного. Что-то не работает. Сижу ковыряюсь.

 

Ответить

al-Ex

Дата: Воскресенье, 12.03.2017, 00:55 |
Сообщение № 2

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 190


Репутация:

59

±

Замечаний:
0% ±


Excel 2010

Файл прикрепить надо.

 

Ответить

Michael_S

Дата: Воскресенье, 12.03.2017, 04:22 |
Сообщение № 3

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

правильно так:
[vba]

Код

Sub macro345()
    If Range(«G6»).Value = Range(«G9»).Value Then
            Application.Run «Макрос6»
    ElseIf Range(«G6»).Value > Range(«G9»).Value Then
            Application.Run «Макрос7»
    End If
End Sub

[/vba]

Сообщение отредактировал Michael_SВоскресенье, 12.03.2017, 04:24

 

Ответить

ant6729

Дата: Воскресенье, 12.03.2017, 10:20 |
Сообщение № 4

Группа: Проверенные

Ранг: Ветеран

Сообщений: 533


Репутация:

2

±

Замечаний:
40% ±


Excel 2010

Спасибо, Михаил, не первый раз помогаете. СПАСИБО!

 

Ответить

Michael_S

Дата: Воскресенье, 12.03.2017, 19:54 |
Сообщение № 5

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

ant6729, в вашем макросе (да и в том варианте, что я написал), непонятно, что надо делать, если Range(«G6»).Value < Range(«G9»).Value.
Правильно будет так:
[vba]

Код

Sub macro345()
    If Range(«G6»).Value = Range(«G9»).Value Then
            Application.Run «Макрос6»
    ElseIf Range(«G6»).Value > Range(«G9»).Value Then
            Application.Run «Макрос7»
    Else
            Application.Run «Макрос8»
    End If
End Sub

[/vba]
или, если запускаем тот же «Макрос7», то
[vba]

Код

Sub macro345()
    If Range(«G6»).Value = Range(«G9»).Value Then
            Application.Run «Макрос6»
    Else
            Application.Run «Макрос7»
    End If
End Sub

[/vba]

 

Ответить

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel запуск макроса по нажатию кнопки
  • Excel запуск без надстроек
  • Excel запросы к файлам
  • Excel запросы sql с параметрами
  • Excel запросы sql примеры

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии