Какова продолжительность жизни глобальной переменной в excel vba?

У меня есть рабочая книга, которая объявляет глобальную переменную, предназначенную для хранения COM-объекта.

Global obj As Object 

Я инициализирую его в событии Workbook_Open следующим образом:

 Set obj = CreateObject("ComObject.ComObject"); 

Я вижу, что он создан, и в это время я могу сделать несколько COM-вызовов.

На моем листе у меня есть куча ячеек, которые выглядят так:

 =Module.CallToComObject(....) 

Внутри модуля у меня есть функция

 Function CallToComObject(...) If obj Is Nothing Then CallToComObject= 0 Else Dim result As Double result = obj.GetCalculatedValue(...) CallToComObject= result End If End Function 

Я вижу эту работу немного, но после обновления нескольких листов объект obj больше не инициализируется, т. Е. Он установлен в Nothing.

Может кто-нибудь объяснить, что я должен искать, что может вызвать это?

Любой из них сбросит глобальные переменные:

  1. Использование «Конец»
  2. Необработанная ошибка времени выполнения
  3. Редактирование кода
  4. Закрытие книги, содержащей проект VB

Это не обязательно исчерпывающий список, хотя …

Я бы предложил 5-ое место в дополнение к Тиму 4 выше: шаг за кодом (отладка) и остановка до конца. Возможно, это может заменить точку номер 3, поскольку редактирующий код, похоже, не приводит к потере глобальной переменной.

  • Объявление глобальной переменной в MATLAB
  • Как использовать extern для обмена переменными между исходными файлами?
  • Расширение приложения для совместного использования переменных во всем мире
  • Глобальные переменные в c # .net
  • Печать всех глобальных переменных / локальных переменных?
  • Глобальные переменные в cocoa / цель-C?
  • Где разместить глобальные переменные в Rails 3
  • Как объявить глобальную переменную в VBA?
  • Глобальные переменные в AngularJS
  • Обмен переменной между controllerами в angular.js
  • глобальная переменная для всех controllerов и просмотров
  • Interesting Posts

    Безопасно ли удалять USB-носители при приостановке работы компьютера?

    Как передать ассоциативный массив в качестве аргумента функции в Bash?

    Необходимо использовать обе кнопки и скрепку на разъеме ATX для питания ПК.

    Могу ли я обновить видеопамять моего ноутбука?

    Какие арифметические операции одинаковы для чисел без знака и двух дополнений?

    Изменение расширения файла с помощью C #

    Android Преобразование Px в Dp (соотношение сторон видео)

    Как я могу оправиться от хард-гена push -f origin master?

    Почему на клавиатуре есть два набора клавиш Ctrl, Alt и Shift?

    Отключите громкость сразу после ее вставки, если ее имя «XYZ»

    Как использовать Rundll32 для выполнения DLL-функции?

    Как получить «дружественное» имя версии ОС?

    Photoshop: пакетное изменение размера для веб-сайта

    Как преобразовать stream Java 8 в массив?

    Агрегация перекрывающихся группировок в сводной таблице

    Давайте будем гением компьютера.