Lost your password?


Хитрости »
Основные понятия (27)
Сводные таблицы и анализ данных (10)
Графики и диаграммы (5)
Работа с VB проектом (12)
Power BI и Power Query (23)
Условное форматирование (5)
Списки и диапазоны (5)
Макросы(VBA процедуры) (68)
Разное (43)
Баги и глюки Excel (5)

Элементы ActiveX перестали работать или ведут себя непредсказуемо

В Microsoft Office после определенных обновлений может появиться проблема: Перестают работать все элементы ActiveX (кнопки CommandButton, списки(Lists и ComboBox) и пр.) во всех файлах, а так же невозможно вставить любой элемент ActiveX на лист(при попытке вставки появляется сообщение Вставка объекта неосуществима), а при работе с таким файлом может появится ошибка Can't exit design mode because control cannot be created). Подробнее про вставку таких элементов на лист можно прочитать в статье: КАК СОЗДАТЬ КНОПКУ ДЛЯ ВЫЗОВА МАКРОСА НА ЛИСТЕ? Там я описывал пример вставки кнопки через ActiveX, но сути это не меняет - остальные элементы вставляются точно так же. Яркий пример - декабрьское обновление безопасности для пакета Microsoft Office (от 09.12.2014), которое призвано устранить различные уязвимости безопасности (кстати сам пакет обновлений делает исправления не только в офисе, но и в Internet Explorer(IE), Exchange и самой ОС Windows). Тогда многие пользователи оказались практически без элементов ActiveX.
При этом очевидных решений проблем как правило нет, удаление установленных обновлений не всегда решает проблему.
Если столкнулись с подобной проблемой, то можно попробовать некоторые приведенные ниже способы. Не все они выдуманы мной, некоторые взяты из форумов. Я собрал проверенные методы в одну статью. Особая благодарность за решение сей проблемы MVP Excel Владимиру Захарову, известному на форумах как ZVI.

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


СПОСОБ 1
Попробуем исправить ошибку вручную.

  1. Закрыть Excel (желательно вообще все окна и приложения)
  2. Нажать одновременно клавишу Windows и R (или нажать на панели задач кнопку ПУСК и выбрать команду Выполнить. В Windows 7 и выше она может отсутствовать и её необходимо будет отобразить через настройку меню Пуск)
  3. Ввести в поле команду: %APPDATA%\Microsoft\Forms и нажать Enter
    В XP обычно это папка:
    C:\Documents and Settings\%USERNAME%\Application Data\Microsoft\Forms\
    В Win7:
    C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Forms\
  4. В открывшейся папке удалить все файлы с расширением EXD
  5. Так же не помешает удалить файлы с расширением EXD из временных папок Excel и VBE: %Temp%\Excel8.0\, %Temp%\VBE\, %USERPROFILE%\Local Settings\Temp\, %USERPROFILE%\Local Settings\Temp\Excel8.0\, %SystemRoot%\Temp\VBE\, %SystemRoot%\Temp\Excel8.0\
    Если каких-то папок нет или в них нет файлов EXD - значит все хорошо и там ничего критичного нет.

СПОСОБ 2
Для тех, кто руками такое проделывать не хочет или все написанное выше китайская грамота - прикладываю BAT-файл со всеми необходимыми командами. Все, что останется - это только его запустить двойным кликом мыши (закрыв предварительно Excel и другие приложения и папки).

  fixMS_Hay.zip (423 bytes, 6 659 скачиваний)

Само содержание BAT-ника выглядит так:

@echo off 
del "%APPDATA%\Microsoft\Forms\*.exd" 
del "%APPDATA%\Microsoft\Excel\*.xlb" 
del "%APPDATA%\Roaming\Microsoft\Forms\*.exd" 
del "%Temp%\VBE\*.exd" 
del "%Temp%\Excel8.0\*.exd" 
del "%APPDATA%\Microsoft\Local\*.exd" 
del "%USERPROFILE%\Local Settings\Temp\*.exd" 
del "%USERPROFILE%\Local Settings\Temp\VBE\*.exd" 
del "%USERPROFILE%\Local Settings\Temp\Excel8.0\*.exd" 
del "%SystemRoot%\Temp\VBE\*.exd" 
del "%SystemRoot%\Temp\Excel8.0\*.exd"

Если использовали Способ1 или Способ2, то для верности необходимо

  1. открыть проблемный файл Excel
  2. перейти в редактор кода Visual Basic(сочетанием клавиш Alt+F11 или из меню c вкладки Разработчик(Developer) -Visual Basic)
  3. внести в код любые изменения (можно просто добавить или изменить любой комментарий). Например, в любом свободном месте записать такую строку кода:
    'comment
  4. скомпилировать проект в ручном режиме из меню редактора: Debug=>Compile VBAProject
  5. сохранить файл

Попробовать работу ActiveX, в том числе на других ПК.


СПОСОБ 3
Самый верный способ для тех, кому нечего терять :-) Переустановка Windows. Можно еще попробовать сделать откат обновлений, но как показала практика откат далеко не всегда решает проблему. Переустановка офиса помогает еще реже, судя по отзывам тех, кто столкнулся с проблемой. Т.е. переустановка может помочь, а может и нет. Как поступить в этом случае решайте сами.


СПОСОБ 4
Вспомнить в какой момент это все началось и проверить обновления офиса и безопасности за этот период от Microsoft(это можно посмотреть через Панель управления -Программы и компоненты -Просмотр установленных обновлений). Если таковые были - перейти на страницу обновлений, изучить что в них вошло. И терпеливо ждать исправления проблемы от Microsoft.


И напоследок - элементы ActiveX сами по себе считаются устаревшими и я бы не рекомендовал их использовать без крайней необходимости, во избежание ситуаций, описанных в этой статье. Для запуска макроса кнопкой есть и другие методы, более стабильные.


Статья помогла? Поделись ссылкой с друзьями!
  Плейлист   Видеоуроки

Поиск по меткам

Access apple watch Multex Power Query и Power BI VBA управление кодами Бесплатные надстройки Дата и время Записки ИП Надстройки Печать Политика Конфиденциальности Почта Программы Работа с приложениями Разработка приложений Росстат Тренинги и вебинары Финансовые Форматирование Функции Excel акции MulTEx ссылки статистика
Обсуждение: 2 комментария
  1. Макс:

    СПОСОБ 3 однозначно надо перенести на позицию 1!

  2. anghel:

    А можно просто, переключить у себя в " Панель управления / Часы,Язык, Регион / Язык и региональные стандарты / Дополнительно / Язык программ не поддерживающий Юникод " выбрал язык системы "немецкий" или "Английский" и Вуаля! всё работает!

Поделитесь своим мнением

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум


Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Тренинги

Заказать
Юридическая информация

Использование материалов сайта

Политика Конфиденциальности

ИП Щербаков Дмитрий Валентинович
ОГРНИП: 318502700083307
ИНН: 504013350772

Наши партнеры

Перейти

Счетчики

Рейтинг@Mail.ru Яндекс.Метрика
© 2024 Excel для всех   Войти