How to Fix “Microsoft Excel is Waiting for Another Application to Complete an OLE Action”
The “Microsoft Excel is Waiting for Another Application to Complete an OLE Action” error occurs when Excel can’t continue because it’s waiting for another program to finish an action initiated through OLE (Object Linking and Embedding). This error typically arises when Excel interacts with external programs like Word or PowerPoint, and communication between them gets delayed or interrupted.
The most common cause is an OLE communication problem, often due to outdated add-ins, incomplete links, or unresponsive external programs. Other issues, like hidden links in documents or specific Excel settings, can also trigger this error.
In this article, we will discuss solutions to fix this error.
1. Uninstall Adobe Acrobat PDFMaker Add-In
PDFMaker integrates with Office applications and, if outdated or incompatible, it can disrupt Excel’s ability to link or embed objects. Removing this add-in can resolve conflicts, allowing Excel to complete OLE operations without unnecessary delays.
- Open Microsoft Excel and click on File using the ribbon bar.
- From the File menu, click on Options at the bottom of the menu list.
- In the Excel Options menu, click on Add-ins from the left-hand menu. Then, in the right-hand pane, expand the drop-down menu beside Manage, choose COM Add-ins, and click the Go… button to open the COM Add-ins menu.
- In the COM Add-ins box, either uncheck the box next to Acrobat PDFMaker Office COM Addin or select it and click Remove to delete it completely.
- Restart your computer and then perform the steps that were previously causing the error to see if the issue is resolved on the next startup.
2. Allow Applications that use DDE in Excel’s settings
Ensuring that the “Ignore other applications that use Dynamic Data Exchange (DDE)” setting is unchecked in Excel helps the application communicate properly with other programs. This way, Excel uses the DDE protocol, which is necessary for certain operations that involve opening files and embedding data, thereby minimizing OLE action errors.
- Open Microsoft Excel and click on File. You can open either a new workbook or a new document.
- In the File menu, click on Options from the left pane.
- In the Excel Options menu, click on the Advanced tab on the left-hand side. Then, scroll down on the right until you reach the General section. Make sure the box labeled Ignore other applications that use Dynamic Data Exchange (DDE) is unchecked.
- Click Ok to save the changes, then restart Microsoft Excel. After restarting, try the operation again that previously caused the “Microsoft is waiting for another application to complete an OLE action” error to see if the issue persists.
3. Kill the Internet Explorer (IE) process
Background processes can sometimes interfere with Excel’s OLE communication, and Internet Explorer processes may be problematic in some setups. If Internet Explorer is running unresponsive tasks, it can hinder Excel’s operations. Ending IE processes can clear this issue, allowing Excel to proceed.
- Press Ctrl + Shift + Esc to open Task Manager.
- In Task Manager, navigate to the Processes tab and check for any Internet Explorer processes that are active.
- If you find any, right-click on the process and select End task to close it.
- Return to Excel and check if the “Microsoft is waiting for another application to complete an OLE action” error still occurs when trying to save the file.
4. Suppress the Excel Application Messaging
To minimize delays from waiting for other applications, you can suppress certain Excel application messages. This method involves using VBA to bypass message prompts that could trigger OLE action errors, thereby allowing uninterrupted task flow.
- Open your workbook in Excel and press Alt + F11 to open the Visual Basic Editor (VBE).
- In the Project bar on the left, right-click on ThisWorkbook and choose Insert > Module.
- In the new module, paste the following code:
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: Some users have used this alternative code to prevent errors:
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
- Press Ctrl + S and click No when prompted with the “The following features cannot be saved in a macro-free workbook” warning.
- Choose a location for the modified workbook, set a name, and ensure the Save as type is set to Excel Macro-Enabled Workbook. Click Save.
- Press Alt + Q to close the editor and return to your workbook. Press Alt + F8, select the Macro you created, and click Run.
5. Disable Compatibility Mode
When Excel runs in compatibility mode, it may have limitations in interacting with newer system components, potentially causing OLE-related issues. Disabling compatibility mode allows Excel to fully utilize modern features and work more smoothly with other applications, reducing delays or communication errors. This adjustment ensures that Excel can properly interact with embedded objects and linked data without unnecessary restrictions.
- Search for Excel in the Windows Start menu.
- Right-click on the Excel app and select Open file location.
- In the file location, right-click the Excel shortcut and choose Properties.
- In the Properties window, go to the Compatibility tab and uncheck the box for Run this program in compatibility mode.