Проблемы
В Microsoft Office Excel код макроса Microsoft Visual Basic для приложений (VBA), содержащийся за листом или книгой, может работать неправильно.
Причина
Это произойдет, если выполняются оба следующих условия:
-
Рассматриваемый код содержится в автоматически выполняемой подпрограмме, например в подпрограмме Auto_Open или Auto_Close.
-
Код не содержится в модуле Visual Basic, а находится за листом или самой книгой.
Обходное решение
Чтобы автоматически выполняемые подпрограммы правильно работали в Microsoft Excel, они должны содержаться в модуле Visual Basic.
Необходимо вставить модуль Visual Basic в книгу, а затем поместить код в новый модуль.
Чтобы вставить модуль Visual Basic, выполните приведенные далее действия.
-
В Обозреватель Project в редакторе Visual Basic активируйте книгу, содержащую соответствующий код.
-
В меню Вставка выберите команду Модуль.
После вставки нового модуля вырезайте код из исходного расположения и вставьте его в модуль Visual Basic. Затем сохраните книгу.
Дополнительная информация
В Excel код VBA можно хранить в трех разных местах: в модуле Visual Basic, в модуле класса Visual Basic и на листах и книгах "позади".
Чтобы изменить код "позади" листа или книги, выполните приведенные ниже действия.
-
Активируйте редактор Visual Basic (нажмите клавиши ALT+F11).
-
В окне Project Обозреватель вы увидите следующие записи:
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
Если дважды щелкнуть одно из имен листа или ThisWorkbook, можно ввести код в окне кода. Такой код, не содержащийся в модуле Visual Basic, считается "за" листом или
Thisworkbook.
Если Auto_Open, Auto_Close или другая автоматически выполняемая подпрограмма хранится "за" листом или книгой ThisWorkbook, она может работать неправильно при открытии или закрытии книги или при выполнении действия, которое должно привести к запуску подпрограммы.