Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 68
Default The best sub for last row / last column / last cell?

I see so many different ways to get the last row/ last column/ last cell ona
sheet.

Since I need to use these functions so often, I am wondering what is truly
and definitively the best (most accurate, most efficient & quickest, in that
order) way to determine last row and/or last column, and/or last cell.

there are several ways on this thread alone:
http://www.microsoft.com/office/comm...=en-us&m=1&p=1

What is the best way, and why?
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default The best sub for last row / last column / last cell?

For a specific column or row, I always use code like

Dim LastRow As Long
Dim LastCol As Long
LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row ' Column A
LastCol = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column ' Row 1
Debug.Print LastRow, LastCol

It works fine and I use it all the time in my commercial applications.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)


"justme" wrote in message
...
I see so many different ways to get the last row/ last column/ last cell
ona
sheet.

Since I need to use these functions so often, I am wondering what is truly
and definitively the best (most accurate, most efficient & quickest, in
that
order) way to determine last row and/or last column, and/or last cell.

there are several ways on this thread alone:
http://www.microsoft.com/office/comm...=en-us&m=1&p=1

What is the best way, and why?



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 68
Default The best sub for last row / last column / last cell?


Chip,

This code is so short and simple. If it works for everything, then why would
people go through writing all sorts of functions to be called, etc. to figure
out the same thing?

Thanks
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,123
Default The best sub for last row / last column / last cell?

Chip's code will only work if all cells in A have data
LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row ' Column A

See my site for another way
http://www.rondebruin.nl/copy1.htm

Text from my site:

You can also check one row or column to find the last cell with a value.

Lr = Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
This will give you the last row with data in Column A + 1 Row

Lc = Sheets("Sheet2").Range("IV1").End(xlToLeft).Offset (0, 1).Column
This will give you the last column with data in Row 1 + 1 column

Be aware that if you copy a range with also empty cells in it, It is possible that
the next time you copy to Sheets("Sheet2")some lines will be overwritten.
Use the Functions to avoid this kind of problems.



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"justme" wrote in message ...

Chip,

This code is so short and simple. If it works for everything, then why would
people go through writing all sorts of functions to be called, etc. to figure
out the same thing?

Thanks

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default The best sub for last row / last column / last cell?

Chip's code will only work if all cells in A have data

I think you mean that if at least one cell in A has data, which I took as an
assumption. It will fail if A(Rows.Count) has data in it. But I NEVER let
data go down that far. It in no way requires that ALL the cells in A have
data. It will return the last row even if A has blanks interspersed within
the data. Unless A is completely empty or A(Rows.Count) has data, it works
fine.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)


"Ron de Bruin" wrote in message
...
Chip's code will only work if all cells in A have data
LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row ' Column A

See my site for another way
http://www.rondebruin.nl/copy1.htm

Text from my site:

You can also check one row or column to find the last cell with a value.

Lr = Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
This will give you the last row with data in Column A + 1 Row

Lc = Sheets("Sheet2").Range("IV1").End(xlToLeft).Offset (0, 1).Column
This will give you the last column with data in Row 1 + 1 column

Be aware that if you copy a range with also empty cells in it, It is
possible that the next time you copy to Sheets("Sheet2")some lines will be
overwritten.
Use the Functions to avoid this kind of problems.



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"justme" wrote in message
...

Chip,

This code is so short and simple. If it works for everything, then why
would people go through writing all sorts of functions to be called, etc.
to figure out the same thing?

Thanks





  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,123
Default The best sub for last row / last column / last cell?

Hi Chip/Tom

If you only want to know it for one column there is no problem
There are a few postings about last cells today so maybe I am confused <g

But if you copy a range to the last row + 1 in A and the range have empty cell in A the next time
It will overwrite data.

That's why I say use the function

See my site for another way
http://www.rondebruin.nl/copy1.htm


Be aware that if you copy a range with also empty cells in it, It is
possible that the next time you copy to Sheets("Sheet2")some lines will be
overwritten.


Sorry, I have to much xml in my head . <vbg


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Chip Pearson" wrote in message ...
Chip's code will only work if all cells in A have data


I think you mean that if at least one cell in A has data, which I took as an
assumption. It will fail if A(Rows.Count) has data in it. But I NEVER let
data go down that far. It in no way requires that ALL the cells in A have
data. It will return the last row even if A has blanks interspersed within
the data. Unless A is completely empty or A(Rows.Count) has data, it works
fine.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)


"Ron de Bruin" wrote in message
...
Chip's code will only work if all cells in A have data
LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row ' Column A

See my site for another way
http://www.rondebruin.nl/copy1.htm

Text from my site:

You can also check one row or column to find the last cell with a value.

Lr = Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
This will give you the last row with data in Column A + 1 Row

Lc = Sheets("Sheet2").Range("IV1").End(xlToLeft).Offset (0, 1).Column
This will give you the last column with data in Row 1 + 1 column

Be aware that if you copy a range with also empty cells in it, It is
possible that the next time you copy to Sheets("Sheet2")some lines will be
overwritten.
Use the Functions to avoid this kind of problems.



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"justme" wrote in message
...

Chip,

This code is so short and simple. If it works for everything, then why
would people go through writing all sorts of functions to be called, etc.
to figure out the same thing?

Thanks



  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default The best sub for last row / last column / last cell?

Ron,
I am not sure why you are falsely disparaging Chip's code, then posting
functionally identical code???

Your motivation escapes me???

Even if he had suggested xlDown, it seems you could have been less insulting
in your response particularly to someone who was posting excellent solutions
back when you were a newby asking for help.


Chip: LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row ' Column A
Ron: Lr = Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1,
0).Row

Chip: LastCol = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column '
Row 1
Ron: Lc = Sheets("Sheet2").Range("IV1").End(xlToLeft).Offset (0, 1).Column

As I said, functionally, I don't see the difference (besides you add 1 to
the result which you explained).

--
Regards,
Tom Ogilvy




"Ron de Bruin" wrote in message
...
Chip's code will only work if all cells in A have data
LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row ' Column A

See my site for another way
http://www.rondebruin.nl/copy1.htm

Text from my site:

You can also check one row or column to find the last cell with a value.

Lr = Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
This will give you the last row with data in Column A + 1 Row

Lc = Sheets("Sheet2").Range("IV1").End(xlToLeft).Offset (0, 1).Column
This will give you the last column with data in Row 1 + 1 column

Be aware that if you copy a range with also empty cells in it, It is
possible that the next time you copy to Sheets("Sheet2")some lines will be
overwritten.
Use the Functions to avoid this kind of problems.



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"justme" wrote in message
...

Chip,

This code is so short and simple. If it works for everything, then why
would people go through writing all sorts of functions to be called, etc.
to figure out the same thing?

Thanks



  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 68
Default The best sub for last row / last column / last cell?

Hi everybody,

Thank you all for your responses. I was actually looking for a formula that
would always find the last cell in a sheet no matter which column was the
longest, i.e. last row, last column. Is there such a thing?

thank you.
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Maddening Dilemma - Compare each cell within column a to each cell in column b and find unique matches [email protected] Excel Worksheet Functions 66 May 1st 23 03:44 AM
Sum Cell Values of one column based on Another Cell Value in a different column kristenb via OfficeKB.com Excel Worksheet Functions 5 April 26th 23 07:41 PM
Hiding column if cell in previous column is empty-revised [email protected] Excel Programming 2 January 4th 07 06:45 AM
Loop through column headers to search from column name and get cell range Pie Excel Programming 9 December 29th 05 12:17 AM
Format cell in column B based on value in the next cell (column c) Nicole Excel Discussion (Misc queries) 7 May 18th 05 10:19 PM


All times are GMT +1. The time now is 04:13 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"