Ошибка компиляции VBA

В этом руководстве объясняется, что означает ошибка компиляции VBA и как она возникает.

Перед запуском вашего кода редактор VBA компилирует код. В основном это означает, что VBA проверяет ваш код, чтобы убедиться, что все требования существуют для его правильного запуска - он проверит, что все переменные объявлены (если вы используете Option Explicit, который вам следует!), Проверьте, что все процедуры объявлены , проверьте циклы и операторы if и т. д. Компилируя код, VBA помогает свести к минимуму любые возникающие ошибки времени выполнения.

(Дополнительную информацию об ошибках VBA см. В нашем Руководстве по обработке ошибок)

Необъявленные переменные

Если вы не объявляете переменные, но ваш Option Explicit включен в верхней части модуля, а затем вы запускаете макрос, произойдет ошибка компиляции.

Если вы нажмете ОК, соответствующая процедура перейдет в режим отладки.

В качестве альтернативы, перед запуском кода вы можете принудительно выполнить компиляцию кода.

в Меню, Выбрать Отладка> Скомпилировать проект.

Компилятор найдет все ошибки компиляции и соответствующим образом выделит первую найденную.

Незаявленные процедуры

Если ваш код относится к процедуре, которая не существует, вы также получите ошибку компиляции.

Например:

1234 Дополнительная процедура вызова ()'код здесь тогдаПозвонить в NextProcedureКонец подписки

Однако если процедура - Следующая процедура не существует, то произойдет ошибка компиляции.

Неправильная кодировка - ожидаемый конец инструкции

Если вы создаете цикл, используя Для… Каждый… Далее или С… Закончить с и забыть и Следующий или Конец с… Вы также получите ошибку компиляции.

123456 Sub CompileError ()Dim wb As WorkbookDim ws как рабочий листДля каждого ws In wbMsgBox ws.NameКонец подписки

То же самое произойдет с оператором If, если опущено End If!

Отсутствующие ссылки

Если вы используете библиотеку объектов, которая не является частью Excel, но вы используете объекты из библиотеки в объявлении переменной, вы также получите ошибку компиляции.

Эту проблему можно решить либо с помощью позднего связывания - объявив переменные как объекты; или добавив соответствующие Библиотека объектов к проекту.

в Меню, Выбрать Инструменты> Ссылки и добавьте в свой проект соответствующую библиотеку объектов.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave