Виправлення: Microsoft Excel чекає, поки інша програма завершить дію OLE

Кілька користувачів Office повідомляють про помилку "Microsoft чекає, поки інша програма завершить дію OLE" при спробі запустити сценарій VBA або при спробі запустити Excel із стартової панелі BI. Повідомляється, що проблема виникає в усіх останніх версіях Windows, включаючи Windows 7, Windows 8.1 та Windows 10)

Microsoft Excel чекає на іншу програму для завершення дії OLE

Що таке дія OLE?

Дія "Об'єднання об'єктів та вбудовування" (OLE) - це, по суті, механізм, призначений допомогти різним програмам Office (Word, Excel, Powerpoint, Sharepoint) взаємодіяти з іншими програмами для успішного завершення операції.

Що спричиняє помилку "Microsoft Excel чекає, поки інша програма завершить дію OLE"?

Ми досліджували саме цю проблему, переглядаючи різні звіти користувачів та переглядаючи офіційну документацію Microsoft. Нам навіть вдалося відтворити цю проблему на одній із наших тестових машин.

Якщо Excel видає запит на зв’язок з іншою програмою (скажімо, Word), він робить це за допомогою об’єкта OLE, а потім чекає відповіді від програми. Якщо відповідь не надходить за межею часу за замовчуванням, Excel викличе таке попередження для кінцевого користувача: 'Microsoft Excel чекає на іншу програму для завершення дії OLE'

Хоча повідомлення про помилку завжди однакове, насправді існує кілька досить поширених сценаріїв, які спричинять цю конкретну помилку в Microsoft Excel:

  • Протокол DDE вимкнено в Excel - Ця проблема може виникати, оскільки протокол динамічного обміну даними (DDE) вимкнено в налаштуваннях Excel.
  • Пошкоджена інсталяція Office - Деякі користувачі, які зазнали проблем, повідомили, що проблема була вирішена після того, як вони переінсталювали або відремонтували всю інсталяцію Office.
  • Надбудова Adobe Acrobat PDFMaker суперечить Excel - Існує кілька звітів користувачів, які змогли вирішити проблему, вимкнувши або видаливши плагін PDFMaker.
  • Процес IE (Internet Explorer) перешкоджає DDE - зазвичай повідомляється, що користувач намагається зберегти файл у Microsoft Excel. У цьому випадку рішення полягає у закритті процесу вручну.

Якщо ви зараз намагаєтесь вирішити це конкретне повідомлення про помилку, ця стаття надасть вам вибір кроків з усунення несправностей. Нижче наведено вибір методів, які інші користувачі у подібній ситуації успішно застосували для вирішення проблеми.

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

Спосіб 1: Видалення Adobe Acrobat PDFMaker (якщо застосовується)

Деяким користувачам вдалося вирішити повідомлення про помилку, видаливши надбудову Adobe Acrobat PDF Maker. Як виявляється, цей плагін може конфліктувати з певними версіями Microsoft Excel.

Ось список версій Office, сумісних з PDF Maker:

  • Office 2010 (Office 14) 32-розрядна та 64-розрядна
  • Office 2013 (Office 15) 32-розрядна та 64-розрядна
  • Office 2016 (Office 16) 32-розрядна та 64-розрядна

Примітка. Ви можете переглянути повний посібник Adobe щодо сумісності ( тут ).

Якщо цей сценарій застосовний, і ви не дуже покладаєтесь на програму PDF Maker, ви, швидше за все, можете вирішити проблему, вимкнувши або видаливши надбудову Adobe Acrobat PDFMaker.

Ось короткий посібник, як це зробити:

Оновлення: Ви також можете скористатися цим виправленням (тут), щоб автоматично відключити надбудову PDFMaker автоматично. Він сумісний з усіма останніми версіями Windows, включаючи Windows 10, Windows 8.1, Windows 7 та Windows Vista.

  1. Відкрийте Microsoft Excel і натисніть на файл за допомогою стрічки.Відкрийте Microsoft Excel і перейдіть до Файл
  2. У меню "Файл" натисніть " Параметри" (унизу списку меню).Перейдіть у меню Файл> Параметри
  3. У меню Параметри Excel натисніть Надбудови, використовуючи ліве бічне меню. Далі перейдіть до правої панелі, розгорніть спадне меню, пов’язане з керуванням, і виберіть надбудови COM . Потім натисніть кнопку Перейти…, щоб запустити меню надбудов Com .Перейдіть до Надбудови, оберіть надбудови COM зі спадного меню та натисніть Перейти
  4. У полі Надбудови COM зніміть прапорець, пов’язаний із додатком Acrobat PDFMaker Office COM, або виберіть його та натисніть Видалити, щоб повністю видалити.
  5. Перезапустіть комп’ютер і відтворіть кроки, які раніше спричиняли помилку, після завершення наступного запуску.

Якщо ви все ще стикаєтеся з помилкою "Microsoft Excel чекає, поки інша програма завершить дію OLE" , перейдіть до наступного методу нижче.

Спосіб 2: Дозвіл програм, які використовують DDE, у налаштуваннях Excel

Як повідомляють багато користувачів, проблема може виникнути, якщо Microsoft Excel налаштовано ігнорувати будь-які програми, які намагаються обмінюватися даними з використанням протоколу Dynamic Data Exchange (DDE) .

Наприклад, скажімо, двічі клацніть на книзі Excel у Провіднику Windows - як тільки команда реєструється, динамічний обмін даними (DDE) надсилається в Excel. Цей обмін доручить Excel відкрити книгу, на якій ви щойно клацнули.

Якщо Excel налаштовано на ігнорування програм, що використовують протокол Dynamic Data Exchange , обмін не відбудеться, і замість цього ви побачите повідомлення "Microsoft Excel чекає, щоб інша програма завершила дію OLE" .

На щастя, ви можете легко виправити цю проблему, зайшовши в меню Параметри в Excel і увімкнувши протокол DDE. Ось короткий посібник, як це зробити:

  1. Відкрийте Microsoft Excel і натисніть Файл . Не має значення, відкриєте ви нову книгу чи новий документ.Відкрийте Microsoft Excel і перейдіть до Файл
  2. У меню Файл натисніть на Параметри на лівій панелі.Перейдіть у меню Файл> Параметри
  3. У меню Параметри Excel натисніть на вкладку Додатково в меню ліворуч. Потім перейдіть до правої панелі та прокрутіть вниз, поки не дійдете до розділу Загальні . Потрапивши туди, переконайтеся, що прапорець Ігнорувати інші програми, що використовують Динамічний обмін даними (DDE), не позначено.Увімкнення протоколу DDE в Excel
  4. Клацніть Ok, щоб зберегти зміни, а потім перезапустіть Microsoft Excel. Потім повторіть операцію, яка раніше спричиняла помилку "Microsoft чекає, поки інша програма завершить дію OLE", і перевірте, чи проблема все ще виникає.

Якщо ви все ще зустрічаєте те саме повідомлення про помилку, перейдіть до наступного методу нижче.

Спосіб 3: Вбивство процесу Internet Explorer (IE)

Кілька користувачів, які бачать помилку "Microsoft чекає, поки інша програма завершить дію OLE", намагаючись зберегти файл, можливо, ви бачите помилку через те, що процес IE заважає обміну динамічним обміном даних (DDE) .

Користувачі, які потрапили в подібну ситуацію, повідомили, що проблему було вирішено після того, як вони вбили процес IE вручну. Ось короткий посібник, як це зробити:

  1. Натисніть Ctrl + Shift + Esc, щоб відкрити диспетчер завдань .
  2. У диспетчері завдань перейдіть на вкладку Процеси та перевірте, чи є у вас якийсь процес, що належить до Internet Explorer, який наразі активний.
  3. Якщо ви бачите одне відкрите, просто клацніть на ньому правою кнопкою миші та виберіть Завершити завдання, щоб закрити його.Закриття процесу Internet Explorer (IE)
  4. Поверніться до Excel і перевірте, чи все ще виникає помилка "Microsoft чекає, поки інша програма завершить дію OLE", коли ви намагаєтеся зберегти файл.

Якщо ви все ще стикаєтеся з тією ж помилкою, перейдіть до наступного методу нижче.

Метод 4: Придушення обміну повідомленнями програми Excel

Якщо під час спроби запустити сценарій VBA ви бачите повідомлення про помилку, одним із обхідних шляхів буде придушення обміну повідомленнями програми за допомогою крихітного шматка коду.

Але майте на увазі, що це не вирішить саму проблему - це лише обхідний шлях, який запобігає появі повідомлення про помилку. Однак буде корисно, якщо вашою єдиною метою є запобігти появі повідомлення про помилку.

Ось короткий посібник із вставки коду VBA для Excel книги, який буде придушувати обмін повідомленнями про програми Excel:

  1. Відкрийте свою книгу в Excel і натисніть Alt + F11, щоб відкрити редактор Visual Basic (VBE) .
  2. In the Project bar (left-hand side), right-click on ThisWorkbook and choose Insert > Module.Клацніть правою кнопкою миші на ThisWorkbook і виберіть Вставити> Модуль
  3. In the newly created module, paste the following code (in the right section of the screen):
    Private Declare Function CoRegisterMessageFilter Lib "ole32" (ByVal IFilterIn As Long, ByRef PreviousFilter) As Long Public Sub KillMessageFilter()    Dim IMsgFilter As Long    CoRegisterMessageFilter 0&, IMsgFilter End Sub Public Sub RestoreMessageFilter()    Dim IMsgFilter As Long    CoRegisterMessageFilter IMsgFilter, IMsgFilter End Sub

    Update: Other users have reported that they managed to prevent the error prompt from appearing by using the following VBA code:

    Sub CreateXYZ()       Dim wdApp As Object     Dim wd As Object          On Error Resume Next     Set wdApp = GetObject(, "Word.Application")     If Err.Number  0 Then         Set wdApp = CreateObject("Word.Application")     End If     On Error GoTo 0     Set wd = wdApp.Documents.Open(ThisWorkbook.Path & Application.PathSeparator & "XYZ template.docm")     wdApp.Visible = True     Range("A1:B10").CopyPicture xlScreen     wd.Range.Paste End Sub
  4. Press Ctrl + S and click No when you see the “The following features cannot be saved in macro-free workbook” warning.Клацніть Ні у запиті попередження
  5. Then, choose a suitable location for the modified workbook set a proper name and make sure that the Save as type is set to Excel Macro-Enabled Workbook. Once everything is in order, click on Save to create the Excel Macro-Enabled Workbook.Створення книги з підтримкою макросів Excel
  6. Press Alt + Q to close the editor and go back to your workbook. Once you’re back in your editor press Alt + F8, select the Macro that you’ve just created and click Run.

Once this procedure is complete, you should no longer see the ‘Microsoft Excel is waiting for another application to complete an OLE action’ error with this WorkBook (even though it might still occur in the background).

Method 5: Disable Compatibility Mode (if applicable)

Some users have managed to resolve the issue after discovering that the Excel executable was running in Compatibility mode. This can happen due to manual user intervention or a 3rd party application.

If you suspect that Excel is running in compatibility mode, disable it and see if the ‘Microsoft Excel is waiting for another application to complete an OLE action’ error stops appearing. Typically, the error is reported to occur if the Excel executable is configured to run in Compatibility mode with Windows Vista and older.

Here’s a quick guide on disabling Compatibility Mode:

  1. Right-click the Excel executable (or the shortcut) and choose Properties.Клацніть правою кнопкою миші на виконуваному файлі Excel і виберіть Властивості
  2. У вікні Властивості перейдіть на вкладку Сумісність і зніміть прапорець біля пункту Запустити цю програму в режимі сумісності .Зніміть прапорець Запустити цю програму в режимі сумісності