Поврежден элемент управления ActiveX? Не удается выйти из режима конструктора, поскольку элемент управления «DTPicker1 не может быть создан»

Я разрабатываю приложение Excel VBA на своем настольном компьютере. У меня есть элемент управления ActiveX DatePicker в моей электронной таблице. Он работал нормально.

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

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

Как это исправить?


person BillD    schedule 17.05.2014    source источник
comment
Похоже, что-то испортилось. Попробуйте appspro.com/Utilities/CodeCleaner.htm, иначе просто скопируйте все в новую книгу. и перестройте свое приложение там.   -  person Jean-François Corbett    schedule 18.05.2014
comment
CodeCleaner не решил проблему. ОДНАКО копирование листов и экспорт/импорт кода в новую книгу, похоже, сделали свое дело. Спасибо за предложение.   -  person BillD    schedule 18.05.2014


Ответы (4)


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

Тогда решение состоит в том, чтобы скопировать все (код и содержимое листа) в новую книгу и перестроить там свое приложение.

[Обновлено из комментария, так как это решило проблему.]

person Jean-François Corbett    schedule 18.05.2014

В моем случае произошла ошибка, когда я разработал лист Excel с элементом управления ActiveX DTPicker в MS Excel 2013, переместил его в Excel 2010 (все еще работает), сохранил некоторые изменения и переместил его обратно в среду разработки в Excel 2013 - DTPickers не может быть загружен.

После некоторого исследования в Интернете я нашел немного хитрое руководство, как решить проблему:

  1. Откройте код проекта и выгрузите ссылки, которые позволяет Excel.
  2. Внесите небольшое изменение в свой код (я добавил одну строку комментария) - чтобы перезагрузить проект или что-то в этом роде.
  3. Запустите какой-нибудь макрос, например только тот, который активирует первый лист.
  4. Закройте и снова откройте Excel.
  5. Voila - средства выбора даты и времени загружаются правильно.

Сначала я удалил временные файлы в "C:\Users\xxx\AppData\Local\Temp\Excel8.0", но это не помогло как отдельное действие, поэтому я не знаю, полезно ли это действие. или нет.

person raca    schedule 25.02.2015

Была похожая проблема, когда «Управление« CommandButton13 »не может быть создано». Электронная таблица все еще работала на ПК моих коллег. Я заметил в редакторе VBA, что Sheet13 был переименован в CommandButton1. На компьютере моих коллег мы снова изменили имя на Sheet13. Теперь он работает нормально на моем ПК.

person JoeBloggs    schedule 21.09.2015

Спустя годы наткнулся на решение, только потому, что записал шаги, которые привели к ситуации.

1) Изменил все ценные бумаги рабочего листа, чтобы включить UserInterfaceOnly: = True 2) Элементы управления Active-X были на защищенных листах

В Workbook:Open включена подпрограмма для обновления всех защит листа, что необходимо для работы UserInterfaceOnly, что позволяет макросам вносить изменения в лист, но не пользователю. Всегда новейший элемент управления Active-X выдавал «Не удается выйти из режима разработки, потому что...» или, если проект полностью защищен, ошибку 57121, что является катастрофическим при попытке переключить предлагаемый режим отладки. Сохранение книги с лист, на котором есть новейший AC, и повторное открытие не вызвало проблем.

Решение: скопировал цикл защиты внизу в начало Workbook_Open и изменил защиту на снятие защиты с пароля (независимо от того, какой у вас). Теперь рабочие книги снова открываются без каких-либо из этих двух предупреждений. Добавлен цикл защиты также в Before_Safe, чтобы гарантировать, что книга всегда будет в безопасном состоянии, в случае ее загрузки в системе с отключенными макросами.

person SekeRob2    schedule 18.01.2020