ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Error Code 6 (https://www.excelbanter.com/excel-programming/339412-error-code-6-a.html)

Dave

Error Code 6
 
I am using lastrow and for some reason I get an overflow error 6 at the "For"
statement. THe spreadsheet has 39,000 lines of data (only 10 columns wide).
THis macro works on all other of my sheets that go up to 26,000 but for some
reason blows up at 39,000.

Anybody have any ideas or advice?

Thanks,
Dave

Public Sub Rpt_Clnr()
Dim J As Integer
Dim Mystr

lastrow = ActiveSheet.UsedRange.Rows.Count

For J = 20000 To lastrow
Mystr = Left((ActiveSheet.Range("A:A").Rows(J).Text), 4)
If Mystr = "Date" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "CFM " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = " " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "----" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "Item" Then
ActiveSheet.Rows(J).Delete
J = J - 1
End If
Next

ActiveSheet.Range("a1").Activate
lastrow = ActiveSheet.UsedRange.Rows.Count
ActiveSheet.Range("A1") = lastrow - 19

End Sub

Dave

Error Code 6
 
By the way, the for statement actual is

For J = 20 To lastrow

"Dave" wrote:

I am using lastrow and for some reason I get an overflow error 6 at the "For"
statement. THe spreadsheet has 39,000 lines of data (only 10 columns wide).
THis macro works on all other of my sheets that go up to 26,000 but for some
reason blows up at 39,000.

Anybody have any ideas or advice?

Thanks,
Dave

Public Sub Rpt_Clnr()
Dim J As Integer
Dim Mystr

lastrow = ActiveSheet.UsedRange.Rows.Count

For J = 20000 To lastrow
Mystr = Left((ActiveSheet.Range("A:A").Rows(J).Text), 4)
If Mystr = "Date" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "CFM " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = " " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "----" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "Item" Then
ActiveSheet.Rows(J).Delete
J = J - 1
End If
Next

ActiveSheet.Range("a1").Activate
lastrow = ActiveSheet.UsedRange.Rows.Count
ActiveSheet.Range("A1") = lastrow - 19

End Sub


LabElf

Error Code 6
 
Dave -
Your loop variable (J) is Integer type, which has a range of -32,768 to
32,767. You are probably getting the overflow error when it tries to go past
this range. Try changing the type of J to Long.
--
In theory, there is no difference between theory and practice; in practice,
there is.


"Dave" wrote:

I am using lastrow and for some reason I get an overflow error 6 at the "For"
statement. THe spreadsheet has 39,000 lines of data (only 10 columns wide).
THis macro works on all other of my sheets that go up to 26,000 but for some
reason blows up at 39,000.

Anybody have any ideas or advice?

Thanks,
Dave

Public Sub Rpt_Clnr()
Dim J As Integer
Dim Mystr

lastrow = ActiveSheet.UsedRange.Rows.Count

For J = 20000 To lastrow
Mystr = Left((ActiveSheet.Range("A:A").Rows(J).Text), 4)
If Mystr = "Date" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "CFM " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = " " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "----" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "Item" Then
ActiveSheet.Rows(J).Delete
J = J - 1
End If
Next

ActiveSheet.Range("a1").Activate
lastrow = ActiveSheet.UsedRange.Rows.Count
ActiveSheet.Range("A1") = lastrow - 19

End Sub


David Hepner

Error Code 6
 
Try:

Dim J as Long instead of integer


"Dave" wrote:

I am using lastrow and for some reason I get an overflow error 6 at the "For"
statement. THe spreadsheet has 39,000 lines of data (only 10 columns wide).
THis macro works on all other of my sheets that go up to 26,000 but for some
reason blows up at 39,000.

Anybody have any ideas or advice?

Thanks,
Dave

Public Sub Rpt_Clnr()
Dim J As Integer
Dim Mystr

lastrow = ActiveSheet.UsedRange.Rows.Count

For J = 20000 To lastrow
Mystr = Left((ActiveSheet.Range("A:A").Rows(J).Text), 4)
If Mystr = "Date" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "CFM " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = " " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "----" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "Item" Then
ActiveSheet.Rows(J).Delete
J = J - 1
End If
Next

ActiveSheet.Range("a1").Activate
lastrow = ActiveSheet.UsedRange.Rows.Count
ActiveSheet.Range("A1") = lastrow - 19

End Sub


Dave

Error Code 6
 
Thanks to both of you...that makes sense!!! It worked

"David Hepner" wrote:

Try:

Dim J as Long instead of integer


"Dave" wrote:

I am using lastrow and for some reason I get an overflow error 6 at the "For"
statement. THe spreadsheet has 39,000 lines of data (only 10 columns wide).
THis macro works on all other of my sheets that go up to 26,000 but for some
reason blows up at 39,000.

Anybody have any ideas or advice?

Thanks,
Dave

Public Sub Rpt_Clnr()
Dim J As Integer
Dim Mystr

lastrow = ActiveSheet.UsedRange.Rows.Count

For J = 20000 To lastrow
Mystr = Left((ActiveSheet.Range("A:A").Rows(J).Text), 4)
If Mystr = "Date" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "CFM " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = " " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "----" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "Item" Then
ActiveSheet.Rows(J).Delete
J = J - 1
End If
Next

ActiveSheet.Range("a1").Activate
lastrow = ActiveSheet.UsedRange.Rows.Count
ActiveSheet.Range("A1") = lastrow - 19

End Sub


Charlie

Error Code 6
 
Death to Integer! I never Dim Integer (even For i = 1 to 10) unless I call a
routine that requires it!

"Dave" wrote:

Thanks to both of you...that makes sense!!! It worked

"David Hepner" wrote:

Try:

Dim J as Long instead of integer


"Dave" wrote:

I am using lastrow and for some reason I get an overflow error 6 at the "For"
statement. THe spreadsheet has 39,000 lines of data (only 10 columns wide).
THis macro works on all other of my sheets that go up to 26,000 but for some
reason blows up at 39,000.

Anybody have any ideas or advice?

Thanks,
Dave

Public Sub Rpt_Clnr()
Dim J As Integer
Dim Mystr

lastrow = ActiveSheet.UsedRange.Rows.Count

For J = 20000 To lastrow
Mystr = Left((ActiveSheet.Range("A:A").Rows(J).Text), 4)
If Mystr = "Date" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "CFM " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = " " Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "----" Then
ActiveSheet.Rows(J).Delete
J = J - 1
ElseIf Mystr = "Item" Then
ActiveSheet.Rows(J).Delete
J = J - 1
End If
Next

ActiveSheet.Range("a1").Activate
lastrow = ActiveSheet.UsedRange.Rows.Count
ActiveSheet.Range("A1") = lastrow - 19

End Sub



All times are GMT +1. The time now is 11:41 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com