Выход из макроса Excel извне (из графического интерфейса, а не из макроса) - PullRequest
1 голос
/ 21 октября 2010

У меня есть программа (GUI), которая взаимодействует с Excel для выполнения макросов.Мы используем Microsoft.Office.Interop.Excel для вызова / запуска макросов, и это прекрасно работает.

Что я не могу понять, так это хороший способ отменить макросы из графического интерфейса.

Одна из идей, которая у нас была, заключалась в том, чтобы использовать переменную excel.application, которая запускает макросы, чтобы записать значение «стоп» в определенную ячейку в рабочей книге, а в макросах (все они в основном циклы), проверить наличие «стоп "значение в этой ячейке.

Это приводит к сбою моего графического интерфейса с этим

The program '[2188] BVLReports.vshost.exe: Managed' has exited with code -336589910 (0xebf00baa).

И Excel связывается и не отвечает.Я знаю, как Exit Sub из макроса, если существует значение «стоп», поэтому мне не нужны ответы о том, как проверить / отменить из макроса.Любые идеи о лучшем способе записи этого значения «стоп» или лучший способ отменить макросы извне?

Спасибо

Ответы [ 2 ]

1 голос
/ 21 октября 2010

Это может иметь место для загадочной функции Excel Application.CheckAbort?

Application.CheckAbort

Согласно справочному приложению. Предполагается, что Checkabort останавливает пересчет, кроме указанного диапазона.Это не делает этого.Очевидно, он выдает ошибку во время выполнения, если в очереди сообщений приложения есть ожидающие сообщения о прерывании (щелчки мыши, нажатие клавиши esc и т. Д.).Параметр указывает, есть ли сообщение или оставить его в очереди.Цель состоит в том, чтобы позволить прерывать длительный расчет VBA так же, как вычисление в Excel.

Application.CheckAbort ([KeepAbort])

0 голосов
/ 21 октября 2010

Может быть, вы можете использовать функцию SendKeys для отправки вывода с клавиатуры, чтобы преуспеть и убить его таким образом.

Надеюсь, это поможет.

Наслаждайтесь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...