Приложение не зарегистрировано excel

Проблемы

При попытке использовать GetObject (Microsoft Visual Basic) или GetActiveObject (Microsoft Visual C++) для автоматизации приложения Microsoft Office появляется одно из следующих сообщений об ошибке, даже если приложение Office запущено.

Сообщение об ошибке 1

Ошибка во время выполнения «429»: компонент ActiveX не может создать объект

Сообщение об ошибке 2

Ошибка: 0x800401e3 «операция недоступна»

Причина

Несмотря на то, что приложение Office запущено, оно может быть не зарегистрировано в таблице текущих объектов (ROT). Запущенный экземпляр приложения Office должен быть зарегистрирован в таблице ROT, прежде чем его можно будет присоединить к функции GetObject (Visual Basic) или GetActiveObject (Visual C++). При запуске приложения Office регистрация запущенных объектов сразу же завершается. Это оптимизирует процесс запуска приложения. Вместо того чтобы регистрироваться при запуске, приложение Office регистрирует запущенные объекты в таблице ROT после того, как он теряет фокус. Таким образом, при попытке использовать GetObject или GetActiveObject для присоединения к запущенному экземпляру приложения Office перед тем, как приложение теряет фокус, может появиться одно из описанных выше ошибок.

Решение

С помощью кода можно изменить фокус от приложения Office на свое собственное приложение (или другое приложение), чтобы позволить ему зарегистрироваться в таблице ROT. Кроме того, если ваш код запускает exe-файл приложения Office, может потребоваться дождаться завершения загрузки приложения Office, прежде чем пытаться присоединиться к запущенному экземпляру. Пример кода предлагается в разделе «Дополнительные сведения».

Статус

Такое поведение является особенностью данного продукта.

Дополнительная информация

В большинстве случаев разработчикам, которые хотят автоматизировать приложение Office, нужно использовать CreateObject (Visual Basic) или CoCreateInstance (Visual C++) для запуска нового экземпляра приложения Office. Однако в некоторых случаях может потребоваться автоматизировать приложение Office, которое уже запущено: например, если пользователь ранее запустил приложение Office. Или, если вы запустили исполняемый файл приложения Office с помощью кода, так что вы можете указать параметры командной строки для приложения. Для автоматизации работающего приложения Office необходимо использовать GetObject или GetActiveObject.

Действия по воспроизведению поведения

  1. Запустите Microsoft Visual Basic и создайте новый стандартный проект EXE. По умолчанию создается форма Form1.

  2. Добавьте в форму Form1 элемент управления CommandButton .

  3. Добавьте следующий код в модуль кода формы.

    Private Sub Command1_Click()    Dim oExcel As Object    ' Launch a new instance of Microsoft Excel:    Shell "C:Program FilesMicrosoft OfficeOfficeExcel.EXE", _       vbMinimizedNoFocus    ' An error 429 occurs on the following line:    Set oExcel = GetObject(, "Excel.Application")    MsgBox oExcel.Name    Set oExcel = NothingEnd Sub

  4. Убедитесь, что правильно задано расположение Excel. exe в примере кода.

  5. Закройте приложение Microsoft Excel, если оно уже запущено.

  6. Нажмите клавишу F5, чтобы запустить проект, и выберите пункт Command1.

Обходное решение

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

  • Передавайте фокус приложению Office, изменив второй аргумент функции Shell на vbMinimizedFocus, vbMaximizedFocusили vbNormalFocus.

  • Присвойте форме Visual Basic фокус.

  • Попробуйте выполнить операцию GetObject при выполнении учета во время загрузки приложения Office.

Следующий пересмотренный код иллюстрирует это временное решение.

Private Declare Sub Sleep Lib "kernel32" _    (ByVal dwMilliseconds As Long)Private Sub Command1_Click()    Dim intSection As Integer    Dim intTries As Integer    Dim oExcel As Object        ' Enable error handler for this procedure:    On Error GoTo ErrorHandler        ' Launch Microsoft Excel, giving it focus:    Shell "C:Program FilesMicrosoft OfficeOfficeExcel.EXE", _        vbMinimizedFocus 'other options for starting with        'focus: vbMaximizedFocus and vbNormalFocus        ' Move focus back to this form. (This ensures the Office    '  application registers itself in the ROT, allowing    '  GetObject to find it.)    Me.SetFocus        ' Attempt to use GetObject to reference the running    '  Office application:    intSection = 1 'attempting GetObject...    Set oExcel = GetObject(, "Excel.Application")    intSection = 0 'resume normal error handling        ' Now you can automate Microsoft Excel:    MsgBox oExcel.Name & ": able to GetObject after " & _        intTries + 1 & " tries.", vbMsgBoxSetForeground        ' Finished with automation so release your reference:    Set oExcel = Nothing        ' Exit procedure:    Exit Sub    ErrorHandler:    If intSection = 1 Then 'GetObject may have failed because the    'Shell function is asynchronous; enough time has not elapsed    'for GetObject to find the running Office application. Wait    'wait 1/2 seconds and retry the GetObject. If you try 20 times    'and GetObject still fails, assume some other reason    'for GetObject failing and exit the procedure.        intTries = intTries + 1        If intTries < 20 Then            Sleep 500 ' wait 1/2 seconds            Resume 'resume code at the GetObject line        Else            MsgBox "GetObject still failing. Process ended.", _                vbMsgBoxSetForeground        End If    Else 'intSection = 0 so use normal error handling:        MsgBox Error$    End IfEnd Sub

Временное решение для C++

Если вы используете C++, в следующем образце кода показан аналогичный метод обхода, показанный в приведенном выше примере Visual Basic. Обратите внимание, что SetForegroundWindow используется для перемещения фокуса из Excel, позволяя ему регистрировать запущенные объекты.

//Store the handle of the currently active window...HWND hwndCurrent = ::GetForegroundWindow();//Launch Excel and wait until it is waiting for//user input...STARTUPINFO Start;PROCESS_INFORMATION ProcInfo;ZeroMemory(&Start,sizeof(STARTUPINFO));Start.cb=sizeof(Start);Start.dwFlags = STARTF_USESHOWWINDOW;Start.wShowWindow = SW_SHOWMINIMIZED;//Change the path to Excel as needed...LPSTR pszExcelPath =       "c:\program files\microsoft office\office\excel.exe";::CreateProcess(NULL, pszExcelPath, 0, 0, 1,       NORMAL_PRIORITY_CLASS, 0, NULL, &Start, &ProcInfo);if((::WaitForInputIdle(ProcInfo.hProcess, 10000))==WAIT_TIMEOUT){    ::MessageBox(NULL, "Timed out waiting for Excel.", NULL,                   MB_OK);}//Restore the active window to the foreground...//  NOTE: If you comment out this line, the code will fail!::SetForegroundWindow(hwndCurrent);//Initialize COM library...::CoInitialize(NULL);//Attach to the running instance...CLSID clsid;CLSIDFromProgID(L"Excel.Application", &clsid);  IUnknown *pUnk = NULL;IDispatch *pDisp = NULL;for(int i=1;i<=5;i++) //try attaching for up to 5 attempts{   HRESULT hr = GetActiveObject(clsid, NULL, (IUnknown**)&pUnk);   if(SUCCEEDED(hr))    {       hr = pUnk->QueryInterface(IID_IDispatch, (void **)&pDisp);       break;   }   ::Sleep(1000);}        if (!pDisp) {    ::MessageBox(NULL, "Failed to find instance!!", "Error",                  MB_ICONHAND);}else {    ::MessageBox(NULL, "Got instance of Excel!", "Success", MB_OK);}//Release the no-longer-needed IUnknown...if (pUnk)     pUnk->Release();//... Add your automation code for Excel here ...//Release pDisp when no longer needed...if (pDisp)    pDisp->Release();//Cleanup COM...CoUninitialize();

Ссылки

Для получения дополнительной информации щелкните приведенные ниже номера статей базы знаний Майкрософт:

192919 Автоматизация защищенной базы данных Access с помощью Visual Basic

237338 Сообщение об ошибке с помощью WordMail: «Этот метод или свойство недоступно»

240794 Определение пути для приложения Office

Содержание

  1. Как исправить Сообщение об ошибке Не удается найти проект или библиотеку
  2. Если ваши файлы Excel не могут найти ошибку проекта или библиотеки, вы можете получить решение на этой странице, чтобы исправить ее.
  3. Какова причина этой ошибки?
  4. Решение 1. Добавление или удаление ссылки в библиотеке
  5. Решение 2: Регистрация файла библиотеки
  6. Решение 3: Попробуйте отменить регистрацию или повторно зарегистрировать библиотеку
  7. Видеоурок по исправлению ошибки «Не удается найти проект или библиотеку»
  8. Решение 4: Восстановите файл MS Excel с помощью инструмента восстановления Excel
  9. Ошибка не зарегистрированной библиотеки
  10. Не удается найти проект или библиотеку
  11. Разрешение ссылок
  12. Поддержка и обратная связь

Как исправить Сообщение об ошибке Не удается найти проект или библиотеку

Если ваши файлы Excel не могут найти ошибку проекта или библиотеки, вы можете получить решение на этой странице, чтобы исправить ее.

Дмитрий Соловьев

2021-03-25 20:28:03 • Обновлено: Восстановление файлов • Проверенные решения

При использовании документа MS Excel или MS Access, которые ассимилируют функции или кнопки, которым требуется VBA (с англ. Visual Basic Applications или приложения Visual Basic) для макросов для выполнения определенной задачи, пользователь может получить ошибку компиляции «Не удается найти проект или библиотеку.»

Какова причина этой ошибки?

  • Эта ошибка обычно вызывается программой пользователя MS Access или MS Excel. Ее причина в том, что в программе отсутствует ссылка на объект или тип библиотеки и она, следовательно, не находится программой. Соответственно, программа не может использовать функции или кнопки на базе VB или Micro. В связи с этим и отправляется сообщение об ошибке.
  • Иногда библиотека может быть переключена или отключена, что приведет к отсутствию связи между библиотекой и программным кодом. В таком случае выдается ошибка компиляции.
  • Поскольку существуют стандартные библиотеки, отсутствие такой библиотеки определенно является проблемой. Но не стоит забывать и о других вариантах. Другая возможная причина этой ошибки состоит в несоответствии библиотеки. Например, у пользователя версия библиотеки 2007 (Sat Outlook), но ссылка на код может искать версию этой конкретной библиотеки 2010 года. Таким образом, программа не может найти соответствующую библиотеку, что приводит к ошибке компиляции.
  • Еще одна причина этой ошибки касается использования Microsoft XP, который включает ссылку на веб-службу в проекте VBA. При запуске этого проекта в MS Office 2003 появляется такая же ошибка компиляции. Причина та же, т.е. объект или тип библиотеки отсутствует (или не найден).

Решение 1. Добавление или удаление ссылки в библиотеке

Первое решение для исправления ошибки “Не удается найти проект или библиотеку“ в MS Access — это удалить ссылку на библиотеку. Для этого вы можете проследовать этой пошаговой инструкции:

Шаг 1: Запустите MS Access на вашем компьютере и откройте базу данных/приложение, в котором отображается ошибка.

Шаг 2: Теперь одновременно нажмите “Alt” + “F11”, чтобы открыть окно редактора VBA.

Шаг 3: Теперь нажмите кнопку “Инструменты” в верхней строке меню и в раскрывающемся меню выберите “Настройки“.

Шаг 4: В следующем диалоговом окне снимите флажок “Отсутствует: объект Microsoft Access” и нажмите “Ok”, чтобы сохранить изменения.

Restart MS Access and check if you encounter the same error anymore or not.

Решение 2: Регистрация файла библиотеки

Существует много ситуаций, когда при установке нового программного обеспечения автоматически отменяется регистрация некоторых определенных библиотек. В таких случаях многие функции MS Access не будут работать, и вам будет отображено сообщение об ошибке «Не удается найти проект или библиотеку». Быстрый и простой способ решить эту проблему — просто зарегистрировать файл библиотеки вручную.
Хотя регистрировать файл библиотеки вручную немного сложно, вы можете выполнить следующие действия, чтобы упростить себе эту задачу.

Шаг 1: Правой кнопкой мыши нажмите на кнопку “Начать”, затем нажмите “Командная строка (админ)”, чтобы запустить командную строку от имени администратора.

Шаг 2: Как только вы окажетесь в окне CMD, просто введите REGSVR32 “Путь к файлу DLL, который вы хотите зарегистрировать”. Например, REGSVR32 “C:Program FilesBlackbaudThe Raisers Edge 7DLLRE7Outlook.dll”.

Это зарегистрирует нужный файл библиотеки, и вы больше не столкнетесь с той же ошибкой.

Решение 3: Попробуйте отменить регистрацию или повторно зарегистрировать библиотеку

Наконец, если ничего не помогает, чтобы исправить ошибку, вы можете либо повторно зарегистрировать файл библиотеки, либо полностью отменить регистрацию. Давайте посмотрим, как повторно зарегистрировать файл библиотеки.

Шаг 1: Нажмите “Windows” + “R” и введите Regsvr32.exe.

Шаг 2: Нажмите Enter и введите полный путь к отсутствующему файлу библиотеки. Например, “regsvr32 “c:program filescommon filesmicrosoft shareddaodao360.dll”.
Если это не устранит ошибку, вы можете просто отменить регистрацию файла библиотеки. Для этого замените “Regsvr32.exe“ на “regsvr32 -u“ и снова вставьте путь к библиотеке.

Вот и все; отмена регистрации файла библиотеки устранит ошибку “не удается найти проект или библиотеку“, и вы сможете работать с базой данных MS Access без каких-либо помех.

Видеоурок по исправлению ошибки «Не удается найти проект или библиотеку»

Последние видео от Recoverit

Решение 4: Восстановите файл MS Excel с помощью инструмента восстановления Excel

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

Это программное обеспечение для восстановления файлов Excel доступно как для одной, так и для нескольких систем. Инструмент восстановления файлов поддерживает все версии Windows, а также Excel 2011 для Mac. Он позволяет восстановить поврежденный файл Excel (.XLS и .XLSX) и вернуть все данные из поврежденного файла в новый файл Excel.

Шаг 1. Выберите поврежденный файл Excel с диска и выполните поиск.

Шаг 2. Выберите один или все поврежденные файлы Excel, чтобы начать процесс восстановления.

Шаг 3. Просмотрите восстановленный файл Excel.

Шаг 4. Выберите предпочтительное место для сохранения восстановленного файла Excel.

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

Источник

Ошибка не зарегистрированной библиотеки

Когда вы запускаете Excel, он выполняет несколько процедур, чтобы убедиться, что все работает правильно. Если он обнаруживает ошибку, вы можете увидеть сообщение об ошибке в диалоговом окне. Иногда сообщения, которые вы видите в диалоговом окне, не так понятны, а некоторые просто загадочны.

Например, вы можете увидеть сообщение «Библиотека объектов не зарегистрирована» и быть полностью потеряно относительно того, что это значит. В этом случае полезно понять, как Excel работает с внешними программами.

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

Excel поставляется с удивительным количеством библиотек, но не все они доступны одновременно. Библиотека доступна только после того, как она была «зарегистрирована» в Excel. Если библиотека не зарегистрирована, Excel не может ее использовать, а макросы в надстройке не могут ее использовать. Результат: сообщение об ошибке.

Лучший способ устранить эту проблему – определить, какие надстройки загружаются при запуске Excel. Изучите папку автозагрузки Excel и убедитесь, что вы знаете, что они все делают. (Вам не нужно знать, что они делают, шаг за шагом, но вы должны быть знакомы с тем, что делает надстройка в целом.)

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

  1. Нажмите Alt + F11 , чтобы открыть редактор VBA.
  2. Выберите «Ссылки» в меню «Инструменты». Вы видите диалоговое окно «Ссылки». (См. Рис. 1.)

Рисунок 1. Диалоговое окно «Ссылки».

  • Запишите (на листе бумаги) имена библиотек, рядом с которыми есть галочки. Напишите точные имена, так как может быть много библиотек с похожими именами. Кроме того, все выбранные библиотеки, отмеченные флажками, должны быть перечислены вверху списка ссылок.
  • Закройте диалоговое окно «Ссылки».
  • Закрыть редактор VBA.
  • Теперь в системе, в которой есть проблемы, выполните те же действия, за исключением шага 3, вам нужно убедиться, что выбраны те же библиотеки, что и те, которые вы написали вниз. Когда вы закроете редактор VBA, перезапустите Excel, чтобы проверить, сохраняется ли проблема. Если это так, или если вы не смогли найти одну из отмеченных библиотек в проблемной системе, вам может потребоваться полностью перерегистрировать Excel. Если да, выполните следующие действия:

    1. Убедитесь, что Excel не запущен (выйдите из программы).
    2. Нажмите кнопку “Пуск”, чтобы отобразить меню “Пуск”.
    3. В меню “Пуск” выберите “Выполнить”. Windows отображает диалоговое окно «Выполнить». (См. Рис. 2.)

    Рисунок 2. Диалоговое окно «Выполнить».

  • В поле «Открыть» введите полный путь к вашей программе Excel, а затем установите переключатель/regserver. Если полное имя пути включает пробелы, заключите полное имя пути в кавычки. Ниже приведен пример того, что вы можете ввести в поле «Открыть» (ваш путь может быть другим):
  • Нажмите “ОК”.
  • После перезапуска Excel проблема должна исчезнуть. Если этого не произошло, вам нужно точно выяснить, какая надстройка вызывает проблему. Для этого нужно найти файлы надстройки в папке автозагрузки и переименовать их или переместить во временную папку. Делайте это по одному файлу за раз, перезагружая Excel после каждого переименования или перемещения. Когда проблема исчезнет, ​​вы знаете, что нашли надстройку с проблемой, и можете связаться с поставщиком, чтобы узнать, как решить проблему.

    Источник

    Не удается найти проект или библиотеку

    Вы не сможете запустить код до тех пор, пока не будут разрешены все отсутствующие ссылки.

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

    Не удалось найти проект, на который указывает ссылка, или не удалось найти указанную библиотеку объектов, соответствующую языку проекта.

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

    Разрешение ссылок

    Отобразите диалоговое окно Ссылки.

    Выберите отсутствующую ссылку.

    Используйте диалоговое окно Обзор, чтобы найти отсутствующую ссылку.

    Нажмите кнопку ОК.

    Повторяйте описанные выше действия, пока не будут разрешены все отсутствующие ссылки.

    Когда вы найдете отсутствующий элемент, префикс MISSING удаляется, указывая на то, что ссылка восстановлена. Если изменилось имя файла проекта, на который указывает ссылка, добавляется новая ссылка, а старую ссылку следует удалить. Чтобы удалить ненужную ссылку, просто снимите флажок рядом с ней. Обратите внимание на то, что ссылки на библиотеку объектов Visual Basic и библиотеку объектов ведущего приложения нельзя удалить.

    Приложения могут поддерживать разные языковые версии своих библиотек объектов. Чтобы выяснить требуемую языковую версию, щелкните ссылку и просмотрите, какой язык указан в нижней части диалогового окна. Библиотеки объектов могут представлять собой отдельные файлы с расширением OLB или быть интегрированными в библиотеку динамической компоновки (DLL) Для каждой платформы могут существовать библиотеки объектов разных версий. Таким образом, при перемещении проектов с одной платформы на другую, например из Macintosh в Microsoft Windows, в расположении, указанном в документации к ведущему приложению, должна находиться правильная языковая версия библиотеки, на которую приведена ссылка, для данной платформы.

    Имена файлов библиотек объектов обычно формируются следующим образом:

    Windows (версии 3.1 и более ранней): код приложения + код языка + [версия].OLB. Например, французская библиотека объектов Visual Basic для приложений для версии 2 называлась vafr2.olb. Французская библиотека объектов Microsoft Excel 5.0 называлась xlfr50.olb.

    Macintosh: Имя приложения Код языка [версия] OLB. Например: французская библиотека объектов Visual Basic для приложений для версии 2 называлась VA FR 2 OLB. Французская библиотека объектов Microsoft Excel 5.0 называлась MS Excel FR 50 OLB.

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

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

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

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

    Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.

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

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

    Источник

    Хотя пакет Microsoft Office является одним из лучших продуктов в своей категории, пользователи часто сталкиваются с ошибками в нем. Одной из таких ошибок является ошибка VBA “Класс не зарегистрирован” в Microsoft Excel.

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

    Однако ошибка VBA “Класс не зарегистрирован” не так сложна, как кажется, и мы перечислили лучшие исправления для нее в следующем разделе.

    Как исправить ошибку VBA “Класс не зарегистрирован”?

    1. Восстановить Microsoft Office

    • Нажмите Windows+ R, чтобы запустить команду «Выполнить», введите appwiz.cpl в текстовое поле и либо нажмите «ОК», либо нажмите Enter, чтобы открыть окно «Программы и компоненты».

    • Найдите запись Microsoft Office, выберите ее и нажмите «Изменить».

    • Нажмите «Да» в появившемся окне UAC (Контроль учетных записей).

    • Теперь выберите вариант онлайн-восстановления и нажмите кнопку «Восстановить», чтобы начать процесс.

    Обнаружено, что процесс восстановления устраняет множество проблем с Microsoft Office, включая ошибку VBA “Класс не зарегистрирован”. Если этот метод не работает, перейдите к следующему.

    2. Зарегистрируйте критический DLL-файл

    • Нажмите Windows+ S, чтобы запустить меню поиска, введите Windows Terminal в текстовое поле вверху, щелкните правой кнопкой мыши соответствующий результат поиска и выберите «Запуск от имени администратора» в контекстном меню.

    • Нажмите «Да» в появившемся приглашении UAC.

    • Теперь щелкните стрелку, направленную вниз, и выберите «Командная строка» в списке параметров. Кроме того, вы можете нажать Ctrl+ Shift+ 2, чтобы запустить командную строку.

    • Введите/вставьте следующую команду и нажмите Enter:
      cd C:WindowsSysWOW64

    • Теперь выполните следующую команду, чтобы зарегистрировать необходимый файл DLL :
      Regsvr32 fm20.dll

    Еще один быстрый способ зарегистрировать отсутствующие DLL-файлы или заменить поврежденные — использовать Outbyte PC Repair Tool, надежный сторонний инструмент. Кроме того, он также будет искать вредоносное ПО, устранять его и устранять причиненный ущерб. Кроме того, инструмент также поможет оптимизировать реестр.

    3. Запустите сканирование DISM и SFC.

    • Нажмите Windows+ R, чтобы запустить команду «Выполнить», введите wt в текстовое поле, нажмите и удерживайте клавишу Ctrl+ Shift, а затем нажмите «ОК» или нажмите, чтобы запустить Терминал WindowsEnter с повышенными правами.

    • Нажмите «Да» в приглашении UAC.

    • Нажмите на стрелку вверху и выберите «Командная строка» в раскрывающемся меню.

    • Теперь вставьте следующие три команды по одной и нажимайте Enter после каждой, чтобы запустить инструмент DISM :
      DISM.exe /Online /Cleanup-image /Scanhealth
      DISM.exe /Online /Cleanup-image /Restorehealth
      DISM.exe /online /cleanup-image /startcomponentcleanup
    • Теперь выполните следующую команду, чтобы выполнить сканирование SFC :
      sfc /scannow

    Сканирование SFC (проверка системных файлов) и инструмент DISM (обслуживание образов развертывания и управление ими) — два эффективных метода устранения множества проблем, связанных с поврежденными системными файлами или проблемами с образом Windows.

    4. Обновите Microsoft Office

    • Запустите любое приложение Microsoft Office и откройте новый пустой документ.
    • Теперь щелкните меню «Файл» в верхнем левом углу.

    • Выберите Аккаунт из списка вариантов слева.

    • Затем нажмите кнопку «Параметры обновления» в разделе «Информация о продукте».

    • Наконец, выберите «Обновить сейчас» в параметрах всплывающего меню.

    • Дождитесь установки обновления, если оно доступно.

    Если проблема связана с текущей версией, попробуйте установить последнюю версию Microsoft Office.

    Это все способы исправить ошибку VBA “Класс не зарегистрирован” при попытке запустить макрос в Excel. Если ни один из приведенных здесь методов не помогает, обновите MS Office до последней доступной версии.

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


    Содержание

    • Причины возникновения ошибки
    • Решение проблемы
      • Способ 1: отключение игнорирования DDE
      • Способ 2: отключение режима совместимости
      • Способ 3: Очистка реестра
      • Способ 4: отключение аппаратного ускорения
      • Способ 5: отключение надстроек
      • Способ 6: сброс сопоставлений файлов
      • Способ 7: загрузка обновлений Windows и переустановка пакета Microsoft Office
    • Вопросы и ответы

    Ошибка в Microsoft Excel

    Несмотря на то, что, в целом, программа Microsoft Excel отличается довольно высоким уровнем стабильности работы, с этим приложением тоже иногда случаются проблемы. Одной из таких проблем является появление сообщения «Ошибка при направлении команды приложению». Оно возникает при попытке сохранить или открыть файл, а так же провести с ним некоторые другие действия. Давайте разберемся, чем вызвана данная проблема, и как её можно устранить.

    Причины возникновения ошибки

    Какие же основные причины вызывают данную ошибку? Можно выделить следующие:

    • Повреждение надстройки;
    • Попытка получить доступ к данным активного приложения;
    • Ошибки в системном реестре;
    • Повреждение программы Excel.

    Решение проблемы

    Пути устранения данной ошибки зависят от её причины. Но, так как в большинстве случаев, установить причину труднее, чем её ликвидировать, то более рациональным решением является методом проб попытаться найти верный способ действий из тех вариантов, которые представлены ниже.

    Способ 1: отключение игнорирования DDE

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

    1. Переходим во вкладку «Файл».
    2. Переход во вкладку Файл в Microsoft Excel

    3. Кликаем по пункту «Параметры».
    4. Переход в Параметры в Microsoft Excel

    5. В открывшемся окне параметров, переходим в подраздел «Дополнительно».
    6. Переход в раздел Дополнительно в Microsoft Excel

    7. Ищем блок настроек «Общие». Снимаем галочку около параметра «Игнорировать DDE-запросы от других приложений». Жмем на кнопку «OK».

    Отключение игнорирования DDE в Microsoft Excel

    После этого, в значительном числе случаев, проблема устраняется.

    Способ 2: отключение режима совместимости

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

    1. Переходим, с помощью проводника Windows, или любого файлового менеджера, в каталог размещения пакета программ Microsoft Office на компьютере. Путь к нему выглядит следующим образом: C:Program FilesMicrosoft OfficeOFFICE№. № — это номер офисного пакета. Например, папка, где хранятся программы Microsoft Office 2007, будет называться OFFICE12, Microsoft Office 2010 — OFFICE14, Microsoft Office 2013 — OFFICE15, и т.д.
    2. Путь к файлу Excel

    3. В папке OFFICE ищем файл Excel.exe. Кликаем по нему правой кнопкой мыши, и в появившемся контекстном меню выбираем пункт «Свойства».
    4. Переход в свойства в Microsoft Excel

    5. В открывшемся окне свойств Excel, переходим во вкладку «Совместимость».
    6. Переход во вкладку Совместимость в Microsoft Excel

    7. Если стоят флажки напротив пункта «Запустить программу в режиме совместимости», или «Выполнять эту программу от имени администратора», то снимаем их. Жмем на кнопку «OK».

    Отключение запуска программы в режиме совместимости в Microsoft Excel

    Lumpics.ru

    Если галочки в соответствующих пунктах не установлены, то продолжаем искать источник проблемы в другом месте.

    Способ 3: Очистка реестра

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

    1. Для того, чтобы вызвать окно «Выполнить», на клавиатуре вводим комбинацию клавиш Win+R. В открывшееся окно, вводим команду «RegEdit» без кавычек. Жмем на кнопку «OK».
    2. Переход в редактор реестра через окно Выполнить

    3. Открывается Редактор реестра. В левой части редактора расположено древо каталогов. Перемещаемся в каталог «CurrentVersion» по следующему пути: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion.
    4. Редактор реестра Windows

    5. Удаляем все папки, расположенные в директории «CurrentVersion». Для этого, кликаем по каждой папке правой кнопкой мыши, и в контекстном меню выбираем пункт «Удалить».
    6. Чистка реестра Windows

    7. После того, как удаление выполнено, перезагружаем компьютер и проверяем работоспособность программы Excel.

    Способ 4: отключение аппаратного ускорения

    Временным решением проблемы может стать отключение аппаратного ускорения в Excel.

    1. Переходим в уже знакомый нам по первому способу решения проблемы раздел «Параметры» во вкладке «Файл». Опять кликаем по пункту «Дополнительно».
    2. В открывшемся окне дополнительных параметров Excel, ищем блок настроек «Экран». Устанавливаем галочку около параметра «Отключить аппаратное ускорение обработки изображений». Кликаем по кнопке «OK».

    Отключение аппаратного ускоренрия в Microsoft Excel

    Способ 5: отключение надстроек

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

    1. Опять переходим, находясь во вкладке «Файл», в раздел «Параметры», но на этот раз кликаем по пункту «Надстройки».
    2. Переход в надстройки в Microsoft Excel

    3. В самой нижней части окна, в выпадающем списке «Управление», выбираем пункт «Надстройки COM». Жмем на кнопку «Перейти».
    4. Переход в надстройки COM в Microsoft Excel

    5. Снимаем галочки со всех надстроек, которые указаны в списке. Жмем на кнопку «OK».
    6. Надстройки COM в Microsoft Excel

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

    Включение надстройки в Microsoft Excel

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

    Способ 6: сброс сопоставлений файлов

    Для решения проблемы можно также попытаться сбросить сопоставления файлов.

    1. Через кнопку «Пуск» переходим в «Панель управления».
    2. Переход в Панель управления

    3. В Панели управления выбираем раздел «Программы».
    4. Переход в раздел Программы в Панели управления

    5. В открывшемся окне, переходим в подраздел «Программы по умолчанию».
    6. Переход в раздел Программы по умолчанию в Панели управления

    7. В окне настроек программ по умолчанию выбираем пункт «Сопоставление типов файлов и протоколов конкретных программ».
    8. Переход в раздел Сопоставления типа файлов в Панели управления

    9. В списке файлов выбираем расширение xlsx. Жмем на кнопку «Изменить программу».
    10. Переход к изменению программы

    11. В открывшемся списке рекомендуемых программ, выбираем Microsoft Excel. Делаем клик по кнопке «OK».
    12. Выбор программы

    13. В случае, если программы Excel нет в списке рекомендуемых программ, жмем на кнопку «Обзор…». Переходим по тому пути, о котором мы говорили, обсуждая способ решения проблемы отключением совместимости, и выбираем файл excel.exe.
    14. Переход к поиску программы

    15. Аналогичные действия проделываем и для расширения xls.

    Способ 7: загрузка обновлений Windows и переустановка пакета Microsoft Office

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

    1. Опять открываем Панель управления. Переходим в раздел «Система и безопасность».
    2. Переход в систему и безопасность панели управления

    3. Кликаем по пункту «Центр обновления Windows».
    4. Переход в центр обновления Windows

    5. В случае, если в открывшемся окне присутствует сообщение о наличии обновлений, жмем на кнопку «Установить обновления».
    6. Переход к установке обновлений Windows

    7. Ждем, пока обновления будут установлены, и перезагружаем компьютер.

    Если ни один из перечисленных методов не помог решить проблему, то возможно есть смысл задуматься о переустановке пакета программ Microsoft Office, а то и о переустановке операционной системы Windows в целом.

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

       nAPACEHAK

    30.04.14 — 16:13

    При открытии Excel

    Попытка

            Excel = Новый COMОбъект(«Excel.Application»);

            Excel.WorkBooks.Open(ПутьКФайлу);

            //Состояние(«Обработка файла Microsoft Excel…»);

            ExcelЛист = Excel.Sheets(Лист);

        Исключение

            Сообщить(«Ошибка при запуске Microsoft Excel.»

            + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);

    получаю ошибку

    Ошибка при запуске Microsoft Excel.

    {Обработка.ЗагрузитьОтбытиеИзФайла.Форма.Форма.Форма(28)}: Ошибка при вызове конструктора (COMОбъект): Приложение было запущено, но оно не зарегистрировало фабрику классов: Приложение было запущено, но оно не зарегистрировало фабрику классов

    Куда копать?

       Wobland

    1 — 30.04.14 — 16:14

    ну не в гугл же, правда?

       nAPACEHAK

    2 — 30.04.14 — 16:16

    ну туда я первым делом сунулся, но ничего не удалось дельного найти ((((

    запуск 1С от администратора — тоже ошибка

       rozer76

    3 — 30.04.14 — 16:18

    эксель (уста/переуста)новить

       nAPACEHAK

    4 — 30.04.14 — 16:20

    а кроме (уста/переуста)новки есть варианты?

    Excel 2013 стоит

       Torquader

    5 — 30.04.14 — 16:31

    (4) Твой очень новый Excel почему-то не хочет общаться с тобой, так как не смог зарегистрировать интерфейс в таблице.

    Если офис starter или что-то типа того, то он не умеет.

       z80a

    6 — 30.04.14 — 16:33

    (0) Поставить libreoffice

       nAPACEHAK

    7 — 30.04.14 — 16:41

    Странно… Офис ПРО стоит. Лицензия. Переустанавливать то как, если все ключи потеряны. А ломаный не прокатит :(

    Может тут чего?

    http://s019.radikal.ru/i627/1404/70/30d2caf1b505.jpg

       nAPACEHAK

    8 — 30.04.14 — 16:42

    не. не то

       MiniMuk

    9 — 30.04.14 — 17:02

    на 64битном сервере?

       Torquader

    10 — 30.04.14 — 17:34

    Попробуйте ещё явно указать версию Excel.

    Excel.Application.12 или какой у него номер.

       nAPACEHAK

    11 — 30.04.14 — 20:30

    64 бит сервер

    явно указать — не прокатило

    лан. буду тогда через xml забирать

       Torquader

    12 — 30.04.14 — 20:45

    А офис — 32 бита ?

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

       MiniMuk

    13 — 01.05.14 — 12:22

    (11) про спец папочку для 64битного сервера слышал?

       zulu_mix

    14 — 01.05.14 — 13:04

    ФайлExcel = ПолучитьCOMОбъект(ПутьКФайлу);

    ExcelЛист = ФайлExcel.Sheets(Лист);

       nAPACEHAK

    15 — 02.05.14 — 21:25

    нет. А что за спец папочка? расскажи?

       nAPACEHAK

    16 — 02.05.14 — 21:43

    ФайлExcel = ПолучитьCOMОбъект(ПутьКФайлу);

    ExcelЛист = ФайлExcel.Sheets(Лист);

    вроде работает. зато теперь в другой строке ошибка.

    работало так:

    ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);

    Теперь получаю:

    {Обработка.ЗагрузитьОтбытиеИзФайла.Форма.Форма.Форма(49)}: Поле объекта не обнаружено (ActiveCell)

        ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);

    После

    ФайлExcel = ПолучитьCOMОбъект(ПутьКФайлу);

    наверно надо немного по другому ячейки обрабатывать?

    Но это уже наверно другая история….

       Torquader

    17 — 02.05.14 — 21:58

    (16) Зачем тебе активная ячейка ?

    Обращайся через Cell(Ряд,Строка) ?

    Потом, нужно сначала получить книгу, потом найти в ней лист и только после этого читать этот лист.

       DjSpike

    18 — 02.05.14 — 22:00

    Можно все сделать через Yoksel.

       Чайник Рассела

    19 — 02.05.14 — 22:01

    а что с ADO уже не модно работать?

       Torquader

    20 — 02.05.14 — 22:05

    Человек хочет через Excel и у него уже половина заработала — что вы ему мешаете ?

       Чайник Рассела

    21 — 02.05.14 — 22:05

    (20) зачем идти порочным путем?

       Torquader

    22 — 02.05.14 — 22:08

    (21) Знаешь, когда выяснится, что тип строки определяется цветом или размером шрифта, то ADO отправляется в далёкий лес.

    А Yoksel на 64-битный сервер может и не встать.

       nAPACEHAK

    23 — 02.05.14 — 22:20

    блин.. не умею тут ссылки на посты писать, типа (17) научите )))

    вот для чего активная ячейка — определить последнее поле со значением для перебора далее  

    xlLastCell = 11;

    ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);

    RowCount = ActiveCell.Row;

    по задумке — с экселя выдергиваем последнее непустое значение (исключая те, где были введены данные и потом стерты из ячейки)

    это значение и есть число строк с которых надо забрать данные

    далее уже Cell(Ряд,Строка) циклом по RowCount

    Для Row=НачСтрока По RowCount Цикл

    эта обработка выдрана с рабочей базы, но там 32

    на 64 не работает. таже самая ошибка была в строке из начала поста

    переделал по совету (14) — ПолучитьCOMОбъект(ПутьКФайлу);

    стала появляться другая ошибка, строками ниже, которая про ActiveCell

       nAPACEHAK

    24 — 02.05.14 — 22:20

    о! уже умею ссылки на пост писать )))))

       Torquader

    25 — 02.05.14 — 22:22

    Вместо ActiveCell бери просто лист, из которого читаешь, или UsedRange.Rows.Count — тоже даёт число рядов, только в последнем офисе — изменённые (то есть формат и обрамление) тоже считаются непустыми (чтоб им пусто было).

       nAPACEHAK

    26 — 02.05.14 — 22:23

    (20) да у меня одна обработка полностью работает через эксель. эту стал писать по аналогии, но на 64 — поймал ошибку

    взял рабочую — и та же самая ошибка

    надо данные забрать с другой программы, а она умеет только в pdf, html, xls и xml выгружать.

    думаю первые 2 варианта точно не прокатят )))

       Torquader

    27 — 02.05.14 — 22:25

    (26) Ты лист получил ?

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

       nAPACEHAK

    28 — 02.05.14 — 22:26

    (25) вот про эти «непустые» и идет речь

    ActiveCell = Excel.ActiveCell.SpecialCells(11);

    их хорошо обрабатывает. пустые измененные (формат, обрамление, введены и удалены данные итд) — считаются пустыми

       nAPACEHAK

    29 — 02.05.14 — 22:28

    (27) ммм…эээ… а как же обработка которая уже не по разу данные забирала? открыл эксель, считал, закрыл. никто ж ничо не выделял. или я чот не догоняю? %)

       Torquader

    30 — 02.05.14 — 22:29

    (29) Всё зависит от версии Excel — если она делает документ активным (то есть окно в Foreground), то появляется активная ячейка, если окно в неизвестном состоянии, то ячейка может и не появиться.

       nAPACEHAK

    31 — 02.05.14 — 22:43

    (30) Если речь про версию Excel то работает на офис 2010 и не работает на офис 2013 обе 32-разрядные

    ОС в 1м случае Win7 x86 во 2м Win8 x64

       Torquader

    32 — 02.05.14 — 22:44

    (31) На 13-том чего-то вообще криво работало.

    Но, открой справочник объектов Excel и посмотри, что там поменялось — в некоторых версиях там всё по-русски написано.

      

    nAPACEHAK

    33 — 04.05.14 — 13:21

    блин….

    xlLastCell = 11;

    Excel = ПолучитьCOMОбъект(ПутьКФайлу);

    ExcelЛист = Excel.Sheets(Лист);

    ActiveCell = ExcelЛист.Cells.SpecialCells(xlLastCell);

    Понравилась статья? Поделить с друзьями:
  • Приложение на телефон для работы в excel
  • Приложение на телефон для открытия word
  • Приложение на телефон word office
  • Приложение на основе таблицы excel
  • Приложение на macbook word