View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Tim Zych[_4_] Tim Zych[_4_] is offline
external usenet poster
 
Posts: 58
Default S1.Range("D65536").End(xlUp).Select

Another point

Neither approach works if there is data in the last cell.


"Bob Phillips" wrote in message
...
Rick,

A little background.

As John shows, you don't need any sheet reference, as Rows.Count will be a
constant value contained within Excel, the correct value dependent upon

the
Excel version.So although you can use
S1.Rows.Count
it is just not necessary.

As well as future proofing, and past proofing your code, it's efficient as
it is using a pre-defined constant.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"John Wilson" wrote in message
...
Rick,

S1.Range("D" & Rows.Count).End(xlUp).Select

John

"Rick" wrote in message
...
Hi,

Bob Phillips had brought up something interesting the
other day with a little humor. But I can't remember the
exact code.

With this code, S1.Range("D65536").End(xlUp).Select, how
can it be rewritten to use Rows.Count instead of 65536, as
suggested by Bob? I always don't have enough or too many
quotation marks when I try to put these kinds of things
together with the ampersands. For some reason, I'm
stuck. I usually figure it out, but I must be doing
something wrong.

The objective is to use Rows.Count in the event that
Microsoft changes the number of rows in Excel...seems like
a good exercise this morning as well. :)

This could be rewritten from this:

Dim S1 As Worksheet
Set S1 = Sheets(1)
S1.Range("D65536").End(xlUp).Select

to something like:

S1.Range(" & "D" & S1.Rows.Count & ").End(xlUp).Select

But with the correct number of quotation marks and
configuration to make it function properly.

Thanks, Rick