Элементы Управления ActiveX Microsoft Excel Отключены?



У меня есть некоторые листы Excel, которые используют флажки ActiveX для управления определенной деятельностью. Они работали недавно, но сегодня начали давать ошибки. Меня предупредил об этом коллега, но он все еще работал на моем компьютере. Я проверил его версию Excel против моей, и его был более новым. Я заметил, что появились новые обновления Windows, поэтому я сделал обновление. После того, как я применил ожидающие обновления, теперь он больше не работает на моем компьютере. Я больше не могу проверять флажки ActiveX, и, как часть попытки отладки, похоже, я даже не могу добавить элемент управления ActiveX на любой рабочий лист, даже новый рабочий лист, больше. Я получаю сообщение об ошибке: "не удается вставить объект."(Я все еще могу добавить элементы управления формой, но не ActiveX.) Кто-нибудь еще испытывает это после недавнего обновления? Есть предложения?



спасибо,



Майк

656   11  

11 ответов:

из других форумов я узнал, что это связано с обновлением MS и что хорошим исправлением является простое удаление файла MSForms.exd из любой подпапки Temp в профиле пользователя. Например:

C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd

C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd

C:\Users\[user.name]\AppData\Local\Temp\Word8.0\MSForms.exd

конечно приложение (Excel, Word...) должен быть закрыт для того, чтобы удалить этот файл.

вот лучший ответ, который я нашел в блоге группы поддержки Microsoft Excel

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

вы можете получены такие ошибки как:

"Не удается вставить объект "" библиотека объектов недопустима или содержит ссылки для определения объектов, которые не могут быть найдены"

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

чтобы решить эту проблему, необходимо удалить кэшированные версии библиотеки типов элементов управления (файлы расширителей) на клиентском компьютере. Делать это, вы должны искать на жестком диске для файлов, которые имеют ".exd" расширение имени файла и удалить все .exd файлы, которые вы найдете. Эти .файлы с расширением EXD будут созданы заново автоматически, когда вы используете новый управляет в следующий раз, когда вы используете VBA. Эти файлы расширителя будут под профилем пользователя, а также может быть в других местах, таких как следующее:

%appdata%\Microsoft\forms

% temp%\Excel8. 0

% temp%\VBE

сценарии решения:

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

del %temp%\vbe\*.exd

del % temp%\excel8.0\*.exd

del %appdata%\microsoft\forms\*.exd

del %appdata%\microsoft\local\*.exd

del %appdata%\Roaming\microsoft\forms\*.exd

del % temp%\word8.0\*.exd

del %temp%\PPT11. 0\*.exd

дополнительный шаг:

Если описанные выше действия не устраняют ваша проблема, еще один шаг, который может быть испытания (см. предупреждение ниже):

  1. на полностью обновленной машине и после удаления .exd файлы, откройте файл в Excel с правами на редактирование.

    откройте Visual Basic для приложений > измените проект, добавив комментарий или редактирование какого-либо модуля кода > отладка > компиляция Виде vbaproject.

    сохраните и снова откройте файл. Тест на разрешение. Если проблема решена, предоставьте этот обновленный проект дополнительные пользователи.

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

Если это не решит вашу проблему, это может быть другая проблема и возможно, потребуется дальнейшее устранение неполадок.

Microsoft в настоящее время работает над этим вопросом. Смотрите блог для новинки.

источник

Он был KB2553154. Microsoft необходимо выпустить исправление. Как разработчик приложений Excel мы не можем перейти на все компьютеры наших клиентов и удалить файлы с них. Нас обвиняют в чем-то, что вызвало Microsoft.

Я разработчик Excel, и я определенно чувствовал боль, когда это произошло. К счастью, я смог найти обходной путь, переименовав MSForms.exd файлы в VBA даже когда Excel работает, который также может решить эту проблему. Разработчики Excel, который нужно распространять свои электронные таблицы можете добавить следующий код VBA в свои таблицы, чтобы сделать их невосприимчивыми к обновление МС.

поместите этот код в любом модуле.

Public Sub RenameMSFormsFiles() 
  Const tempFileName As String = "MSForms - Copy.exd"  
  Const msFormsFileName As String = "MSForms.exd"  
  On Error Resume Next 

  'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd file  
  RenameFile Environ("TEMP") & "\Excel8.0\" & msFormsFileName, Environ("TEMP") & "\Excel8.0\" & tempFileName 
  'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd file  
  RenameFile Environ("TEMP") & "\VBE\" & msFormsFileName, Environ("TEMP") & "\VBE\" & tempFileName 
End Sub  

Private Sub RenameFile(fromFilePath As String, toFilePath As String) 
  If CheckFileExist(fromFilePath) Then 
      DeleteFile toFilePath  
      Name fromFilePath As toFilePath  
  End If  
End Sub

Private Function CheckFileExist(path As String) As Boolean 
  CheckFileExist = (Dir(path) <> "")  
End Function  

Private Sub DeleteFile(path As String) 
  If CheckFileExist(path) Then 
      SetAttr path, vbNormal  
      Kill path  
  End If  
End Sub    

подпрограмма RenameMSFormsFiles пытается переименуйте MSForms.exd файлы в C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\ и C:\Users\[user.name]\AppData\Local\Temp\VBE\ папки в MSForms-копировать.exd.

затем вызовите функцию RenameMSFormsFiles в самом начале события Workbook_Open.

Private Sub Workbook_Open() 
  RenameMSFormsFiles  
End Sub

электронная таблица попытается переименовать MSForms.exd файлы, когда он открывается. Очевидно, что это не идеальное решение:

  1. затронутый пользователь все равно будет испытывать ошибки элемента управления ActiveX при запуске кода VBA при первом открытии электронная таблица. Только после выполнения кода VBA один раз и перезапуска Excel, проблема устранена. Обычно, когда пользователь сталкивается со сломанной электронной таблицей, реакция коленного рефлекса заключается в том, чтобы закрыть Excel и попытаться снова открыть электронную таблицу. :)
  2. MSForms.exd файлы переименовываются каждый раз, когда электронная таблица открывается, даже если нет никаких проблем с MSForms.файлы с расширением EXD. Но электронная таблица будет работать просто отлично.

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

Я разместил это решение здесь.

С Windows 8.1 я не смог найти .exd файлы с помощью поиска windows. С другой стороны, команда cmd dir *.exd /S нашел один файл в моей системе.

советы в КБ и выше не работает для меня. Я обнаружил, что если один пользователь Excel 2007 (С или без обновления для системы безопасности; не уверен в точных обстоятельствах, которые вызывают это) сохраняет файл, возвращается исходная ошибка.

Я обнаружил, что самый быстрый способ восстановить файл снова, чтобы удалить весь код VBA. Спасать. Затем замените код VBA (копировать/вставить). Спасать. Прежде чем пытаться это сделать, я удаляю.Сначала EXD файлы, потому что в противном случае я получаю сообщение об ошибке открыть.

в моем случае я не могу обновить / обновить всех пользователей моего файла Excel в разных местах. Поскольку проблема возвращается после того, как некоторые пользователи сохраняют файл Excel, мне придется заменить элемент управления ActiveX на что-то другое.

упрощенные инструкции для конечных пользователей. Не стесняйтесь копировать / вставлять следующее.

вот как исправить проблему, когда она возникает:

  1. закройте все офисные программы и файлы.
  2. откройте Проводник Windows и введите %TEMP% в адресную строку, затем нажмите Enter. Это приведет вас в системную временную папку.
  3. найдите и удалите следующие папки: Excel8.0, VBE, Word8. 0
  4. теперь попробуйте использовать ваш файл снова, это не должно быть никаких проблем.

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

лучший источник информации и обновлений по этому вопросу я мог бы найти в блогах TechNet " блог группы поддержки Microsoft Excel (Как уже упоминалось):

формы управления перестают работать после обновления декабря 2014 года (обновлено 10 марта 2015 года)

в марте 2015 года было выпущено исправление в дополнение к автоматическому исправлению и ручным инструкциям, и он также доступен в Центре обновления Windows.

последнее обновление и исправление от Microsoft: 3025036 ошибка "не удается вставить объект" в решение ActiveX custom Office после установки обновления для системы безопасности MS14-082

статус: обновление 10 марта 2015:

исправления для этой проблемы были выпущены в марте 2015 обновления для Office 2007, 2010 и 2013.

Общая информация о проблеме:

для некоторых пользователей элементы управления формой (FM20.dll) больше не работают так, как ожидалось после установки обновлений безопасности MS14-082 для Microsoft Office за декабрь 2014 года. Проблемы возникают иногда, например, когда они открывают файлы с существующими проектами VBA с помощью элементов управления forms, пытаются вставить элемент управления forms в новый лист или запустить стороннее программное обеспечение, которое может использовать эти компоненты.

https://technet.microsoft.com/en-us/library/security/ms14-082.aspx

вы можете получить такие ошибки, как: "Не удается вставить объект"; " объект библиотека недопустима или содержит ссылки на определения объектов, которые не удалось найти"; "программа, используемая для создания этого объекта, является Forms. Эта программа либо не установлена на вашем компьютере, либо не отвечает. Чтобы изменить этот объект, установите формы или убедитесь, что все диалоговые окна в формах закрыты."[...] Кроме того может быть невозможно использовать или изменять свойства элемента управления ActiveX на листе или появляется сообщение об ошибке при попытке ссылаться на элемент управления ActiveX в качестве члена рабочий лист с помощью кода.

руководство и дополнительные решения:

сценарии решения:

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

del %temp%\vbe\*.exd
del %temp%\excel8.0\*.exd
del %appdata%\microsoft\forms\*.exd
del %appdata%\microsoft\local\*.exd
del %temp%\word8.0\*.exd
del %temp%\PPT11.0\*.exd

дополнительный шаг:

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

  1. на полностью обновленной машине и после удаления .exd файлы, откройте файл в Excel с правами на редактирование.

  2. откройте Visual Basic для приложений > измените проект, добавив комментарий или редактирование какого-либо модуля кода > Отладка > Компиляция VBAProject.

  3. сохраните и снова откройте файл. Тест на разрешение.

если проблема решена, предоставьте этот обновленный проект дополнительным пользователям.

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

Я наконец нашел этот ответ на официальном Microsoft KB:

http://support.microsoft.com/kb/3025036/EN-US

здесь нет новой информации, чем то, что мы имеем в предыдущих ответах, но по крайней мере он признает, что Microsoft знает об этой проблеме.

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

Шаг 1: Удалите следующие обновления-KB2920789, KB2920790, KB2920792, KB2920793, KB2984942, KB2596927

Шаг 2: скрыть эти обновления, чтобы они не были установлены при последующих перезагрузках

Шаг 3: удалить папку Excel8. 0 из C:\Users\ \AppData\Local\Temp

Шаг 4: Перезагрузите workstatiion (я бы также убедился, что вышеупомянутый KBs не был случайно применен)

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

colStore = new Collection

Я не знал, что он выдает ошибку, поэтому я был сбит с толку и попробовал все здесь. Кнопка просто перестала работать, и я не мог заставить ее работать. Когда я заметил ошибку и исправил ее:

Set colStore = new Collection

Он снова начал работать. Абсолютно странно если вы спросите меня, но, возможно, это поможет кому-то там, кто был в таком же отчаянии, как и я.

Comments

    Ничего не найдено.