If you're hiding rows or columns, then excel may be trying to determine where
those little dotted lines go (the ones you see after you do File|print preview).

If you delete/hide/show lots of rows, this can slow your macro down.

As a test, try this on the slow version.

Open your workbook
tools|options|view tab|uncheck Page Breaks

Then run your macro. If it works fast, then maybe you found the problem.

===
Saved from a previous post...


There are some other settings that can make your code work faster:

Application.ScreenUpdating = False
CalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
ActiveSheet.DisplayPageBreaks = False


The first stops the screen flickering when you select different sheets (but it's
even better to not select sheets/ranges/objects).

The second & third line turns calculation to manual (and remembers the current
setting).

You'll want to turn it back to what it was before you started at the end:
Application.calculation = calcmode

And the last tells excel to not worry about where to show those dotted lines
(where page breaks would be). This is useful if your macro inserts/deletes rows
or columns.

markwattwood wrote:
>
> I have written two identical Macros using Visual Basic. The only difference
> in the code are the variables that are inputted. the code contains
> directions that cause lines to be hidden or cells to be erased based upon
> either the color or content of the cells. One macro runs fast but the other
> runs very slow. Ive contacted IBM and they say it is not the processor.
> When viewing the code in the debug mode the selection.clearcontents seems to
> cause a pause in the execution but only in the one macro.


--

Dave Peterson