2016-10-11 6 views
0

Я должен исправить ошибку в файле excel с большим количеством макросов vba, которые я не создал. Также я никогда не работал с VBA в Excel, поэтому надеюсь, что вы можете немного помочь мне.Excel/VBA - ошибка во время выполнения 91 возникает только после ввода и выхода из режима разработки

Файл используется для хранения всех видов информации в каждой строке, и есть кнопка, показывающая/всплывающая форма пользователя, где я могу редактировать новую строку и добавлять ее к файлу. Все работает нормально, я открываю файл, и я могу использовать его по назначению. Но после того, как я вошел и вышел из режима Desing, каждый раз, когда я нажимаю кнопку «новая строка», я получаю ошибку времени выполнения 91.

Когда я его отлаживаю, отладчик останавливается на строке, где я хочу написать имя пользователя из переменной (имя хранится при открытии файла) в текстовый файл.

Print #file, user.name

После жесткого кодирования имени пользователя (Print #file, "ck") отладчик останавливается в другом положении с ошибкой времени выполнения 91, где форма пользователя загружаются/показана на рисунке.

frmAddData.Show

В моем понимании эта ошибка возникает из-за user.name и frmAddData являются пустыми, соответственно, удаляются после того, как я вышел из режима редактирования.

Есть ли какие-либо известные проблемы или кто-либо когда-либо слышал о такой проблеме в режиме оформления, или кто-то знает, какая ошибка/ошибка или что может вызвать эту странную проблему и как ее исправить, не переписывая все вещь?

Спасибо заранее, Gistiv

+0

Режим проектирования иногда вызывает перекомпиляцию кода, поэтому любые связанные переменные могут быть потеряны/очищены. –

+0

Благодарим вас за ответ. Есть ли способ остановить это или, по крайней мере, узнать, как и какой код перекомпилировать? – Gistiv

+0

Нет реального способа остановить его, я думаю - если вы отредактируете код, это будет иметь какой-то эффект, если вы уже создали объекты, созданные на основе этого кода. В регулярном модуле вы, скорее всего, будете в безопасности, но если вы редактируете модуль класса (форма/рабочий лист/пользовательский класс), вы увидите поведение, с которым у вас проблемы. –

ответ

0

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