Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 186
Default Row Count Error

I have the following code:

dSubRows = Workbooks(strSubWB).Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row

It works in Excel 2003 but not in Excel 2007.
Why not?
--
Ken Hudson
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,101
Default Row Count Error

Here's a function that I use

Private Function FindLastRow(whatSheet As Worksheet, whichCol As String) As
Long
'this finds and returns the actual last row on a sheet
'that has entry in specified column
'NOT the next row available for data entry
'so calling routine should add 1 to the returned value
'to determine next row available for new entry
'when it is found that a sheet has no entries, this
'routine will (properly) return zero.

If Val(Left(Application.Version, 2)) < 12 Then
'in pre-2007 Excel
FindLastRow = whatSheet.Range(whichCol & Rows.Count).End(xlUp).Row
Else
'in Excel 2007 or later
FindLastRow = whatSheet.Range(whichCol &
Rows.CountLarge).End(xlUp).Row
End If
If FindLastRow = 1 And IsEmpty(whatSheet.Range(whichCol & "1")) Then
FindLastRow = 0 ' no entries at all in the column on the sheet
End If

End Function

"Ken Hudson" wrote:

I have the following code:

dSubRows = Workbooks(strSubWB).Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row

It works in Excel 2003 but not in Excel 2007.
Why not?
--
Ken Hudson

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,549
Default Row Count Error

It doesn't work???
Rows.Count is unqualified, so it refers to the active sheet.
Possibly the active sheet is different in xl2007 then in xl2003.
In any case I would use something like this...

With Workbooks(strSubWB).Sheets(1)
dSubRows = .Cells(.Rows.Count, 1).End(xlUp).Row
End With

Or the problem, whatever it is, could be an "improvement" added in xl2007
--
Jim Cone
Portland, Oregon USA


"Ken Hudson"
wrote in message
I have the following code:
dSubRows = Workbooks(strSubWB).Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row
It works in Excel 2003 but not in Excel 2007.
Why not?
--
Ken Hudson
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Row Count Error

Although I think it's always a good idea to qualify the ranges (including
..rows.count), I don't think it's the problem in this case.

Each worksheet in the workbook will have the same number of rows-- either 64k or
1M rows--depending on how it was saved and reopened.

(The number of rows between worksheets in the same workbook won't vary.)

Jim Cone wrote:

It doesn't work???
Rows.Count is unqualified, so it refers to the active sheet.
Possibly the active sheet is different in xl2007 then in xl2003.
In any case I would use something like this...

With Workbooks(strSubWB).Sheets(1)
dSubRows = .Cells(.Rows.Count, 1).End(xlUp).Row
End With

Or the problem, whatever it is, could be an "improvement" added in xl2007
--
Jim Cone
Portland, Oregon USA

"Ken Hudson"
wrote in message
I have the following code:
dSubRows = Workbooks(strSubWB).Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row
It works in Excel 2003 but not in Excel 2007.
Why not?
--
Ken Hudson


--

Dave Peterson
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,549
Default Row Count Error

Hi Dave,
But you could have code in one workbook operating on another workbook and
Ken, in his original post, specifies a particular workbook.
However,he doesn't say where the code is located.
See my second post.
--
Jim Cone
Portland, Oregon USA
(xl2007 is a downgrade)


"Dave Peterson"
wrote in message
Although I think it's always a good idea to qualify the ranges (including
..rows.count), I don't think it's the problem in this case.
Each worksheet in the workbook will have the same number of rows--
either 64k or 1M rows--depending on how it was saved and reopened.
(The number of rows between worksheets in the same workbook won't vary.)




  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Row Count Error

I see your point (now!).

Jim Cone wrote:

Hi Dave,
But you could have code in one workbook operating on another workbook and
Ken, in his original post, specifies a particular workbook.
However,he doesn't say where the code is located.
See my second post.
--
Jim Cone
Portland, Oregon USA
(xl2007 is a downgrade)

"Dave Peterson"
wrote in message
Although I think it's always a good idea to qualify the ranges (including
.rows.count), I don't think it's the problem in this case.
Each worksheet in the workbook will have the same number of rows--
either 64k or 1M rows--depending on how it was saved and reopened.
(The number of rows between worksheets in the same workbook won't vary.)


--

Dave Peterson
  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,651
Default Row Count Error

On Wed, 8 Oct 2008 16:58:10 -0700, Ken Hudson
wrote:

I have the following code:

dSubRows = Workbooks(strSubWB).Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row

It works in Excel 2003 but not in Excel 2007.
Why not?


What do you mean when you write it does not work?

XL crashes?
Wrong result?
Some error message?

Since an equivalent to the right side of your statement works in my XL2007, the
problem is likely in something you have not told us about.

For example, this statement works as expected:

Debug.Print ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row

printing the number of the row just below the lowest occupied cell in column A.
--ron
  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 186
Default Row Count Error

Hi Ron,
You are correct, although I didin't know what it was I didn't tell you about
until I did more experimenting. (Is that a double negative or something?)
Anyway, the problem was that the workbook (strSubWB) that I had opened was
from 2003 and had a .xls file extension.
If I open it in 2007 and save as .xlsx, the code works okay.
I have just begun to convert a slew of macros to 2007 and have a lot to
learn it seems.
Thanks all for your input.

--
Ken Hudson


"Ron Rosenfeld" wrote:

On Wed, 8 Oct 2008 16:58:10 -0700, Ken Hudson
wrote:

I have the following code:

dSubRows = Workbooks(strSubWB).Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row

It works in Excel 2003 but not in Excel 2007.
Why not?


What do you mean when you write it does not work?

XL crashes?
Wrong result?
Some error message?

Since an equivalent to the right side of your statement works in my XL2007, the
problem is likely in something you have not told us about.

For example, this statement works as expected:

Debug.Print ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row

printing the number of the row just below the lowest occupied cell in column A.
--ron

  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,651
Default Row Count Error

On Thu, 9 Oct 2008 08:25:01 -0700, Ken Hudson
wrote:

Hi Ron,
You are correct, although I didin't know what it was I didn't tell you about
until I did more experimenting. (Is that a double negative or something?)
Anyway, the problem was that the workbook (strSubWB) that I had opened was
from 2003 and had a .xls file extension.
If I open it in 2007 and save as .xlsx, the code works okay.
I have just begun to convert a slew of macros to 2007 and have a lot to
learn it seems.
Thanks all for your input.

--
Ken Hudson


Interesting.

I've not been able to reproduce your error here, though.
--ron
  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 186
Default Row Count Error

Hi Ron,
That's disappointing to hear. It makes me think now that I really haven't
found the smoking gun.
There must be something else that I don't know I haven't told you all yet.
--
Ken Hudson


"Ron Rosenfeld" wrote:

On Thu, 9 Oct 2008 08:25:01 -0700, Ken Hudson
wrote:

Hi Ron,
You are correct, although I didin't know what it was I didn't tell you about
until I did more experimenting. (Is that a double negative or something?)
Anyway, the problem was that the workbook (strSubWB) that I had opened was
from 2003 and had a .xls file extension.
If I open it in 2007 and save as .xlsx, the code works okay.
I have just begun to convert a slew of macros to 2007 and have a lot to
learn it seems.
Thanks all for your input.

--
Ken Hudson


Interesting.

I've not been able to reproduce your error here, though.
--ron



  #11   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Row Count Error

What happens in xl2007?

Did you dim dsubrows as long or as an integer?



Ken Hudson wrote:

I have the following code:

dSubRows = Workbooks(strSubWB).Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row

It works in Excel 2003 but not in Excel 2007.
Why not?
--
Ken Hudson


--

Dave Peterson
  #12   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 186
Default Row Count Error

It is dimmmed as double.
When I run it, I get error 1004 - Application-defined or object-defined error.

--
Ken Hudson


"Dave Peterson" wrote:

What happens in xl2007?

Did you dim dsubrows as long or as an integer?



Ken Hudson wrote:

I have the following code:

dSubRows = Workbooks(strSubWB).Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row

It works in Excel 2003 but not in Excel 2007.
Why not?
--
Ken Hudson


--

Dave Peterson

  #13   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,549
Default Row Count Error


In xl2007, you can have workbooks with 65000 rows and workbooks with
1,000,000 rows open at the same time.
Code with an unqualified Row.Count could provide some entertainment. <g
--
Jim Cone
Portland, Oregon USA

  #14   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 186
Default Row Count Error

Hey Jim,
I live in Seattle. Maybe I should just drive down and figure this out face
to face. <g
--
Ken Hudson


"Jim Cone" wrote:


In xl2007, you can have workbooks with 65000 rows and workbooks with
1,000,000 rows open at the same time.
Code with an unqualified Row.Count could provide some entertainment. <g
--
Jim Cone
Portland, Oregon USA


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"