Formatting via VBA

E

Exceller

I recorded a simple macro to change the format of a worksheet to "Accounting".

Cells.Select
Selection.NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""_);_(@_)"

But how do I "deselect" the page after the macro has executed? In other
words, when I created the macro I selected the entire spreadsheet, so when I
run the macro the entire worksheet remains selected after the macro runs.
What code can I put at the end of the macro so that the last cell that was
selected when the was run is reselected when it finishes. Or, if there's
better code to accomplish the reformatting of a spreadsheet that negates
having to reselect the cell I was working in I'd appreciate to have that.

Thanks.
 
R

Rick Rothstein

For future reference... when you use the macro recorder, it sees you do
every step; hence it saw you select the cells (first step) and then apply a
format to them (second step), so it gave you two separate lines like this...

Range.Select
Selection.DoSomethingToTheSelection [=][TheSomething]

where DoSomethingToTheSelection could be a method to execute against the
selection or, as in your case, an assignment of a value to one of the
selection's properties. The point is that it is almost always possible to
"bridge" the two statements at the Select/Selection to produce a single line
command like this...

Range.DoSomethingToThisSelection [=][TheSomething]

Very rarely does VBA actually make you select the range before doing
something to it; so, if you see that construction result from the macro
recorder, you should consider performing the above "bridging" of the two
lines as shown above to see VBA will allow it (your program won't jump
around as much, so it should be more efficient).
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top