Код VBA "Behind" лист или книга могут не работать в Excel

Версия этой статьи для Microsoft Excel 97 приведена в статье 157346.Версия этой статьи для Microsoft Excel 98 приведена в статье 182482.

Проблемы

В Microsoft Office Excel текст макросов Microsoft Visual Basic для приложений (VBA), содержащихся на рабочем листе или в книге, может работать неправильно.

Причина

Это происходит, если выполняются оба указанных ниже условия.

  • Рассматриваемый код содержится в автоматически выполняемой подпрограмме, например в подпрограмме Auto_Open или AUTO_CLOSE .

  • Этот код не содержится в модуле Visual Basic, а также на листе или в самой книге.

Обходное решение

Чтобы автоматически выполняемые процедуры выполнялись правильно в Microsoft Excel, они должны находиться в модуле Visual Basic. Необходимо вставить модуль Visual Basic в книгу, а затем поместить код в новый модуль. Чтобы вставить модуль Visual Basic, выполните указанные ниже действия.

  1. В редакторе Visual Basic в окне проекта активируйте книгу, содержащую рассматриваемый код.

  2. В меню Вставка выберите команду Модуль.

После вставки нового модуля вырежьте этот код из исходного места и вставьте его в модуль Visual Basic. Затем сохраните книгу.

Дополнительная информация

В Excel можно хранить код VBA в трех разных расположениях: в модуле Visual Basic, в модуле Visual Basic, а также на листах и книгах. Чтобы изменить код "за" на листе или в книге, выполните указанные ниже действия.

  1. Активируйте редактор Visual Basic (нажмите клавиши ALT + F11).

  2. В окне " Обозреватель проектов " отображаются записи, аналогичные приведенным ниже.

         VBAProject (Book1)         Microsoft Excel Objects            Sheet1 (Sheet1)            Sheet2 (Sheet2)            Sheet3 (Sheet3)            ThisWorkbook                  Modules             Module1 

Если дважды щелкнуть один из названий листов или ThisWorkbook, вы можете ввести код в окне кода. Этот код, не содержащийся в модуле Visual Basic, считается "Behind" на листе или вThisWorkbook . Если Auto_Open, AUTO_CLOSEили другие автоматически выполняемые подпрограммы хранятся "на листе или в ThisWorkbook, это может привести к некорректной работе при открытии или закрытии книги, а также при выполнении действия, которое должно приводить к выполнению подпрограммы.

Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×