Excel 2016 Option Explicit не может обнаружить необъявленные переменные - PullRequest
0 голосов
/ 18 декабря 2018

Все листы и все модули имеют явный параметр Option в верхней части.

Требуется объявление переменной * отмечен галочкой

У меня есть только два раздела кода, каждый в своем собственноммодуль.Но Option Explicit игнорируется.

В качестве теста я вставил новую строку кода

sausage = 3 

, и она скомпилирована без ошибок.

Я проверил все возможные разделы кода в книге с кодом ниже.Это не удается компиляции во всех из них, кроме одного.Весь код в этом модуле:

Option Explicit

Sub SelectPath_Click()
s = 3
End Sub

Использование команды «Отладка -> Компиляция VBA» не выдает ошибок, а возможность сделать это снова будет выделена серым цветом.

Кодкак вы можете догадаться, вызывается при нажатии кнопки.Я думаю, что кнопка - это элемент управления Form, а не active-x, но я не знаю, как запросить кнопку, чтобы узнать, какой это тип.

Нет активных надстроек.

Тем временем я переместил сабвуфер из модуля на лист, на котором сидит кнопка, и эй, presto.Компиляция не удалась.

Итак, вопрос в том, как эта часть рабочей книги может игнорировать Option Explicit?Я что-то не так делаю?

Ответы [ 2 ]

0 голосов

Попробуй это.Это звучит глупо, но на самом деле это несколько раз исправляло это условие для меня с Excel 2003 до (даже сегодня утром) в 2016 году. Если это не удастся, вы потратите всего 30 секунд, пытаясь найти этот странный обходной путь.

Поместите курсор после «t» в «Явном»
Введите пробел (для этого есть причудливая техническая причина; просто поверьте мне)
Нажмите ввод
Нажмите клавишу со стрелкой влево
Нажмите клавишу удаления

Теперь компилятор должен делать то, что вы ожидали.

Это в том случае, если вы все сделали правильно, и вы ЗНАЕТЕ, что Option Explicit просто не работает должным образом, то есть выдает ошибку компиляции длянеобъявленные переменные.

0 голосов
/ 18 декабря 2018

Я нашел решение, переместив код из модуля на рабочий лист, на котором находилась кнопка, вызывающая его.

Каждая другая область кода правильно не компилировалась с дафф-кодом (даже другой модуль св нем есть функция.)

Мне пришлось переназначить код для кнопки, но теперь все работает как надо.

Но я понятия не имею, почему это должно было произойти раньше.

Спасибо за внимание.

...