Невозможно создание объекта контейнером activex excel application

Обновлено: 28.06.2024

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

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

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

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

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

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

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

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

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

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

подпрограмма 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.

электронная таблица попытается переименовать 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 (с обновлением безопасности или без него; не уверен в точных обстоятельствах, которые вызывают это) сохраняет файл, возвращается исходная ошибка.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Компонент ActiveX не может создать объект

Причина

Такое поведение может произойти, если любое из следующих условий является верным:

  • Объекты доступа к данным (DAO) не регистрируются должным образом.
  • Отсутствуют одна или несколько ссылок.
  • Существует ссылка на базу данных утилиты, которая не является допустимой.
  • У вас нет необходимых разрешений для необходимых библиотек.
  • Существует поврежденный файл мастера.

Решение

Причина 1: DAO не регистрируется должным образом

Перерегистрируйте библиотеку DAO 3.6. Для этого выполните следующие действия:

  1. На компьютере, на котором установлен Microsoft Access, или на компьютере, на котором находится Microsoft Терминал Windows Server, нажмите кнопку Пуск и нажмите кнопку Запустить. (Если вы не видите Run, вы можете найти его или открыть командную подсказку).
  2. В текстовом поле Run введите regsvr32, а затем путь к файлу DAO. Заключим этот путь в кавычках. Например, чтобы зарегистрировать библиотеку DAO 3.6, используйте следующую команду, которая включает путь по умолчанию к файлу библиотеки DAO: regsvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\DAO360.DLL" .

Причина 2. Отсутствуют одна или несколько ссылок

Проверьте отсутствие ссылок. Для этого выполните следующие действия:

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

Причина 3. Существует ссылка на базу данных утилиты, которая не является допустимой

С выпуском Microsoft Access 2000 ссылка на Utility не требуется. Если вы преобразовали базу данных из предыдущей версии, в списке ссылок по-прежнему может появиться ссылка на Utility. Ото всех ссылок на utility или Utility.mda. Для этого выполните следующие действия:

Причина 4. У вас нет необходимых разрешений для необходимых библиотек

Все пользователи Microsoft Access должны иметь разрешения на Windows системных папок.

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

Если вы не можете предоставить разрешения на чтение, вы можете использовать такую утилиту, как Process Monitor, чтобы определить, какие файлы или файлы пользователи не имеют необходимых разрешений для использования. Чтобы получить монитор процесса, посетите следующий веб-сайт Sysinternals: Sysinternals.

Причина 5. Существует поврежденный файл мастера

Чтобы восстановить поврежденные файлы мастера, выполните следующие действия:

  1. Используйте Windows Explorer, чтобы найти следующие файлы мастера: Acwzmain.mde, Acwztool.mde и Acwzlib.mde.
  2. Измените расширение имени файла каждого файла на "старый". Например, измените Acwzmain.mde на Acwzmain.old.
  3. Ремонт Microsoft Access или Microsoft Office Professional, чтобы переустановить файлы Мастера.

Дополнительные сведения

Заявление об отказе от ответственности за сведения о продуктах сторонних производителей

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

Эта ошибка имеет следующие причины и способы решения:

Невозможно использовать библиотеки DLL, необходимые для этого объекта, так как ее либо не удается найти, либо она была найдена, но оказалась повреждена. Убедитесь, что все связанные библиотеки DLL доступны. Например, объект доступа к данным (DAO) требует поддержку DLL, которые отличаются в зависимости от платформы. Может потребоваться повторный запуск программы установки для подобного объекта, если именно это является причиной данной ошибки.

Объект доступен на компьютере, но это лицензированный объект автоматизациии нет возможности проверить доступность лицензии, необходимой для создания его экземпляра.

Если попытка создания экземпляра является результатом вызова CreateObject или GetObject, объект должен найти ключ. В этом случае он может выполнить поиск в реестре системы или поиск специального файла, который он создает при установке (например, с расширением .LIC). Если ключ не удается найти, экземпляр объекта не может быть создан.

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

Вы пытаетесь использовать функцию GetObject для получения ссылки на класс, созданный с помощью Visual Basic. GetObject не может использоваться для получения ссылки на класс, созданный с помощью Visual Basic.

Доступ к объекту явным образом был запрещен. Например, вы пытаетесь получить доступ к объекту данных, который используется в данный момент и заблокирован, чтобы предотвратить ситуацию взаимоблокировки. В таком случае, возможно, вы сможете получить доступ к объекту в другое время.

Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Добрый день!
Пытаюсь подружить свое web-приложение с excel, чтобы выводить результаты запросов пользователей не только в HTML виде.

Вот моя тестовая страничка hello.aspx:

Excel открывается, все прекрасно, могу делать что угодно, примеров куча.
Но этот скрипт выполняется на машите клиента, а я хочу, чтобы на сервере, я тогда в описание скрипта вписываю фразу RUNAT="Server". После этого появляются ошибки:

BC30188: Ожидалось объявление.
На строку: set app = createobject("Excel.Application")

Я пробовал оформить все как aspx:

Система ругается:
Операторы присваивания "Let" и "Set" больше не поддерживаются.
Убрал их, все сделал вот в таком виде:

Появляется ошибка:
Не удалось создать компонент ActiveX.
На строку: app = createobject("Excel.Application")

В общем приплыл к той же ошибке.
Я работаю не в Visual Studio, знаю что там как то подключается к проекту библиотека MS Office, я работаю в простом блокноке, IIS 7.
Не знаю как быть, подскажите, пожалуйста.

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Не удалось создать компонент ActiveX, после переустановки MS Office
Всё работало нормально пока не переустановил MS Office (слетела активация офиса) :( После.


System.Exception: "Не удалось создать компонент ActiveX."
Хочу попробовать поизучать Visual Basic в Visual Studio 2017 Пробую открыть в нем экселевский файл.

Создать объект Excel.Application: var Obj=Server.CreateObject('Excel.Application');
мне нужно создать объект var Obj=Server.CreateObject('Excel.Application'); у меня стоит iis 4.0 .


Как создать ActiveX компонент
подскажите, как сделать ActiveX компонент? с расширением .ocx

Читайте также: