Understanding OLE Error Messages in Excel

Understanding OLE Error Messages in Excel
Page content

Deconstructing The Error Message

“Microsoft Excel is waiting for another application to complete an OLE action.” This is one of Microsoft’s not particularly helpful error messages. What it means is that Excel has timed out while either trying to open a file created in another program or waiting for results to be returned. It can result from a conflict with multiple other programs.

Note that this error can also show up when system resources are low, so if you get it after the computer has been on for a long time, you may be able to get rid of it simply by rebooting.

PowerPoint

Did you just close PowerPoint? If it is still partially in memory, you may see this error message when Excel (or Word) requests the updated slide image. This is a known bug with Word 2000, Excel 2000 and PowerPoint 2000. If you are using those versions and see it, try closing the presentation but keeping PowerPoint open . This makes it less likely that the error will occur.

You can also get rid of the problem by upgrading to a newer version of Microsoft Office.

MATLAB Operations

Longer MATLAB operations can easily exceed Excel’s timeout for COM calls; when linking to the function in an Excel macro, you can see the “Microsoft Excel is waiting for another application to complete an OLE action” message.

This is not an error per se; simply a notification that Excel is still waiting on results and you can safely click ok each time the message comes up until the function completes execution.

However, if this is an ongoing annoyance, you can disable the warning by using this macro, provided by MathWorks (the company that makes MATLAB); obviously you replace “myLongOperation” with the name of your MATLAB function.

Sub runLongOperation()

Application.DisplayAlerts = False

MLEvalString (“myLongOperation”)

Application.DisplayAlerts = True

End Sub

Excel Applications: Waiting For The User

Another time this can come up is when your program is waiting for user input; if the user takes too long to respond to the message box, he may end up seeing this error message. This can be turned off by adding the following line before generating the message box:

Application.DisplayAlerts = False

This can show up in other situations where Excel passes off control to another program and waits for user input, such as sending the user to Outlook to send an email. Again, you can use the code above.

Tracking Down the Error

As you can see, the difficulty in using this error message is that the same message can be caused by a number of different things, some of which are problems with the computer and some of which are actually expected behavior. However, they have one thing in common: the message means that Excel is waiting for some kind of input and passed a timeout threshold. If this is an isolated occurring, you can probably just click ok and ignore it; however, if it’s showing up in software that you’re developing due to waiting on user input, you’ll probably want to disable the error message using the code above.