Есть два файла эксель с разными макросами, допустим Книга А с макросом А, А1 и т.п. и Книга Б с макросом Б. Задача: сделать так, чтобы макросы книги А и макросы книги Б работали параллельно и не останавливали работу друг друга. Для этого мы открываем книгу Б с макросом Б во второй сессии экселя. Запускаем макросы книги Б с помощью макроса периодического запуска (например с периодом 3 секунд), на примере: Dim TimeToRun 'глобальная переменная, где хранится следующее время запуска
'это главный макрос
Код
Sub MyMacro()
Application.Calculate 'пересчитываем книгу
Range("A1").Interior.ColorIndex = Int(Rnd() * 56) 'заливаем ячейку А1 случайным цветом
Call NextRun 'запускаем макрос NextRun для назначения след.времени запуска
End Sub
'этот макрос назначает время следующего запуска главного макроса
Код
Sub NextRun()
TimeToRun = Now + TimeValue("00:00:03") 'прибавляем к текущему времени 3 сек
Application.OnTime TimeToRun, "MyMacro" 'назначаем следующий запуск
End Sub
'макрос для запуска последовательности повторений
Код
Sub Start()
Call NextRun
End Sub
'макрос для остановки последовательности повторений
Код
Sub Finish()
Application.OnTime TimeToRun, "MyMacro", , False
End Sub
Так вот нам нужно в эти конструкции встроить еще часть кода, которая Проверяла бы, работает ли в настоящий момент при этом другой макрос, если работает, то макрос книги Б срабатывал бы сразу по окончанию его работы, а не выдавал ошибку. Буду признателен за Ваши подсказки. Спасибо.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄