Excel is frequently giving a “not responding” message when Brian is processing any of several workbooks. He wonders about the best way to diagnose and correct such a problem.
There are a number of things that you could check, but rather than reinvent the wheel here, I’ll simply provide some pointers to helpful information. The best place to check may actually be the Microsoft Knowledge Base. There are two articles there that will be helpful. The first article you’ll want to check out is this one:
The article focuses primarily on elements external to what is in your workbook, each of which can affect how Excel works with your data. If you think the problem may be more with what is inside your workbook (the data itself, how it is formatted, and additional objects), then you’ll want to refer to this article:
Of course, the problem may not be related to your data or external elements at all. If the “not responding” message comes up when you are running a macro, it could be because of the macro itself. If that is the case, you’ll want to dust off your debugging skills and figure out if you have a logic error in the macro that is causing it to go into an infinite loop. (What is an infinite loop? A series of steps repeated forever because the conditions that would stop the repetition naturally are never encountered.) If that is the case, you’ll need to change the macro to make sure the infinite loop condition doesn’t occur.
Of course, it could be that your macro is working as hard as it can and it just takes a long, long time. In cases like this, Excel seems to “turn off” foreground processing (what you see in the workbook) until the macro running in the background is finished.
One way to moderate this a bit is to place a DoEvents command in your macro code. This causes VBA to take a breath and execute any “events” that have built up while it was so busy running code that it ignored everything else. In other words, it causes VBA to allow Excel to “respond,” so the “not responding” message doesn’t appear.