Код VBA "позаду" аркуша або книги може не працювати в Excel

Ознаки

У програмі Microsoft Office Excel код макросу Microsoft Visual Basic for Application (VBA), що міститься за аркушем або книгою, може працювати неправильно.

Причина

Це станеться, якщо виконуються обидві з таких умов:

  • Код, про який йде мова, міститься всередині автоматично запущеної підпрограми, наприклад Auto_Open або Auto_Close підпрограми.
  • Код міститься не в модулі Visual Basic, а за аркушем або самою книгою.

Спосіб вирішення

Щоб підпрограми автоматично працювали належним чином у програмі Microsoft Excel, вони мають міститися в модулі Visual Basic.

Потрібно вставити модуль Visual Basic у книгу, а потім помістити код у новий модуль.

Щоб вставити модуль Visual Basic, виконайте наведені нижче дії.

  1. У провіднику Project у редакторі Visual Basic активуйте книгу, яка містить потрібний код.
  2. У меню "Insert" (Вставлення) натисніть кнопку "Module" (Модуль).

Вставивши новий модуль, виріжте код із вихідного розташування та вставте його в модуль Visual Basic. Потім збережіть книгу.

Додаткові відомості

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

Щоб відредагувати код "позаду" аркуша або книги:

  1. Активація редактора Visual Basic (натисніть клавіші Alt+F11).
  2. У вікні Провідника Project відображатимуться записи, подібні до таких елементів:

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

Якщо двічі клацнути одне з імен аркушів або ThisWorkbook, можна ввести код у вікні коду. Такий код, який не міститься в модулі Visual Basic, вважається "позаду" аркуша або
Цей опрацейк.

Якщо Auto_Open, Auto_Close або інший підпрограма, що запускається автоматично, зберігається за аркушем або книгою ThisWorkbook, вона може функціонувати неправильно під час відкриття або закриття книги або виконання дії, яка має спричинити запуск підпрограми.