Закрыть и перезапустить Excel в произвольный момент при запуске макроса?

Предположим, что есть Marcro example_code в файле Excel 2016: example_excel.xlsm который имеет много кода, но не создает внешние файлы (все вычисления выполняются вexample_excel.xlsm,

Мне было любопытно, есть ли способ:

  1. Прервать / приостановить работающий код в любой момент.
  2. Вручную добавьте следующую строку в коде: Запускает / вызывает функцию / подпрограмму, которая:
  3. Сохраняет полный example_excel.xlsm состояние (включая активированный и выбранный лист и ячейку, а также переменные / среда выполнения кода),
  4. Закройте его в любой произвольной точке кода и
  5. Снова откройте Excel
  6. Продолжить выполнение кода example_code откуда вы остановились,
  7. После удаления вставленной строки, которая сохраняет состояние Excel,
  8. либо мгновенно
  9. или после нажатия 1 кнопки / запуска 1 макроса?

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

Теперь простым решением будет поиск всех параметров, состояний листа и ячеек, которые присутствуют в этом состоянии, сохранение их на отдельном листе и их повторная инициализация. Но это не допускает гибкости при устранении неполадок, если необходимо оценить другое состояние, и это не удобно при использовании объекта.ie с бесконечным циклом внутри него, например, у parent есть дочерний элемент, у которого есть элемент, являющийся родительским дочерним элементом снова (я думал, что это существовало, хотя я не уверен).

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

Пока предпринимаются попытки: [в редактировании-разработаем.] Моя главная трудность в том, что я не знаю, как пройти через все параметры / переменные, если список параметров неизвестен.

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

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

Мне кажется, что я ищу очень суженный подход к решению, поэтому приветствуются предложения по изучению различных / более широких вариантов решения проблемы!

0 ответов

Другие вопросы по тегам