У цьому посібнику буде пояснено, що означає помилка компіляції VBA та як вона виникає.
Перш ніж запускати код, редактор VBA збирає код. Це в основному означає, що VBA перевіряє ваш код, щоб переконатися, що всі вимоги є для його коректного запуску - він перевірить, чи всі змінні оголошені (якщо ви використовуєте Option Explicit, який вам слід!), Перевірте, чи всі процедури оголошені , перевірити цикли та оператори if тощо. Компілюючи код, VBA допомагає мінімізувати будь -які помилки під час виконання.
(Докладніше про помилки VBA див. У нашому Посібнику з обробки помилок)
Незадекларовані змінні
Якщо ви не оголошуєте змінні, але ваш Option Explicit увімкнено у верхній частині вашого модуля, а потім ви запускаєте макрос, виникає помилка компіляції.
Якщо натиснути OK, відповідна процедура перейде в режим налагодження.
Крім того, перед тим, як запустити код, ви можете примусити компіляцію коду.
В Меню, виберіть Налагодження> Скомпілювати проект.
Компілятор знайде будь -які помилки компіляції і відповідно виділить першу, яку знайде.
Незадекларовані процедури
Якщо ви кодуєте посилання на процедуру, яка не існує, ви також отримаєте помилку компіляції.
Наприклад:
1234 | Sub CallProcedure ()"Тоді тут є деякий кодЗателефонуйте NextProcedureEnd Sub |
Однак, якщо процедура - ДаліПроцедура не існує, то виникне помилка компіляції.
Неправильне кодування - очікуваний кінець оператора
Якщо ви створюєте цикл за допомогою Для… Кожного… Далі або З… Закінчити з і забути про те і Далі або Закінчити з… Ви також отримаєте помилку компіляції.
123456 | Sub CompileError ()Dim wb Як робочий зошитЗатемнити як робочий аркушДля кожного ws В wbMsgBox ws.NameEnd Sub |
Те саме станеться з оператором If, якщо опущено End If!
Відсутні посилання
Якщо ви використовуєте бібліотеку об’єктів, яка не є частиною Excel, але ви використовуєте об’єкти з бібліотеки у вашому оголошенні змінної, ви також отримаєте помилку компіляції.
Це можна вирішити за допомогою пізнього прив’язки - оголошення змінних об’єктами; або шляхом додавання відповідного Бібліотека об’єктів до Проекту.
В Меню, виберіть Інструменти> Посилання та додайте до свого проекту відповідну бібліотеку об’єктів.