Обработка ошибок при запуске макроса VBA в открытом листе - PullRequest
1 голос
/ 11 июля 2019

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

Я пытаюсь сделать это, используя On Error Resume NextОднако, похоже, это имеет смысл только в той таблице, с которой я работаю.Сначала я попытался активировать целевой лист, но это не сработало.

Мой текущий код выглядит примерно так:

Set wbTarget = Workbooks.Open(sPath)
Set wbThis = ThisWorkbook
wbTarget.Activate
On Error Resume Next
Application.Run (wbTarget.Name & "!ErrorProducingMacro")
On Error Goto 0
wbThis.Activate

Я тестирую это на макросе, который выдает ошибку, которая, как я ожидаю, будет игнорировать мой код, однако он отображаетошибка как будто On Error Resume Next не вызывались.Есть ли способ установить обработку ошибок целевой книги, о которой кто-нибудь знает?

Любая помощь будет принята.

1 Ответ

0 голосов
/ 11 июля 2019

Согласно Ahmed AU - что-то вроде

Ln = Wb.VBProject.VBComponents("Module1").CodeModule.ProcStartLine("ErrorProducingMacro", 0) 
Wb.VBProject.VBComponents("Module1").CodeModule.InsertLines Ln + 2, "On Error Resume Next" 
Run Wb.Name & "!ErrorProducingMacro"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...