ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   macro OK in Excel 2003 but NOT in Excel 2000 (https://www.excelbanter.com/excel-programming/406164-macro-ok-excel-2003-but-not-excel-2000-a.html)

AncientLearner

macro OK in Excel 2003 but NOT in Excel 2000
 
I can run to following code in Excel 2003 but when I run it in Excel 2000 I
get an error/debug at the line Set rngFrom = <<<

Should I declare different variables because of 2000 version?

****
Sub ADP_ExportExcel()
'transpose horizontal column output (multiCol) into single column
(vertical)
Dim rngFrom As Range
Dim rngTo As Range
Dim rng As Range
With Sheets("sheet1")
Set rngFrom = .Range(.Range("A1"), .Cells(Rows.Count, "A").End(xlUp)) <<

End With
Set rngTo = Sheets("sheet2").Range("A1")
For Each rng In rngFrom
rngTo.Value = rng.Value
rngTo.Offset(1, 0).Value = rng.Offset(0, 1).Value '2 columns
rngTo.Offset(2, 0).Value = rng.Offset(0, 2).Value '3 columns
rngTo.Offset(3, 0).Value = rng.Offset(0, 3).Value '4 columns
Set rngTo = rngTo.Offset(4, 0) 'number of rows per item
Next rng
End Sub

--
AncientLearner
....never to old to learn something new

Mark Ivey[_2_]

macro OK in Excel 2003 but NOT in Excel 2000
 
Give this a try...


LastRowSheet1 = Sheets(1).Cells(Cells.Rows.Count, "A").End(xlUp).Row

Set rngFrom = Sheets(1).Range("A1:A" & LastRowSheet1)





Mark Ivey

"AncientLearner" wrote in message
...
I can run to following code in Excel 2003 but when I run it in Excel 2000
I
get an error/debug at the line Set rngFrom = <<<

Should I declare different variables because of 2000 version?

****
Sub ADP_ExportExcel()
'transpose horizontal column output (multiCol) into single column
(vertical)
Dim rngFrom As Range
Dim rngTo As Range
Dim rng As Range
With Sheets("sheet1")
Set rngFrom = .Range(.Range("A1"), .Cells(Rows.Count, "A").End(xlUp))
<<

End With
Set rngTo = Sheets("sheet2").Range("A1")
For Each rng In rngFrom
rngTo.Value = rng.Value
rngTo.Offset(1, 0).Value = rng.Offset(0, 1).Value '2 columns
rngTo.Offset(2, 0).Value = rng.Offset(0, 2).Value '3 columns
rngTo.Offset(3, 0).Value = rng.Offset(0, 3).Value '4 columns
Set rngTo = rngTo.Offset(4, 0) 'number of rows per item
Next rng
End Sub

--
AncientLearner
...never to old to learn something new



Dave Peterson

macro OK in Excel 2003 but NOT in Excel 2000
 
That line looks ok to me.

What error are you getting?

AncientLearner wrote:

I can run to following code in Excel 2003 but when I run it in Excel 2000 I
get an error/debug at the line Set rngFrom = <<<

Should I declare different variables because of 2000 version?

****
Sub ADP_ExportExcel()
'transpose horizontal column output (multiCol) into single column
(vertical)
Dim rngFrom As Range
Dim rngTo As Range
Dim rng As Range
With Sheets("sheet1")
Set rngFrom = .Range(.Range("A1"), .Cells(Rows.Count, "A").End(xlUp)) <<

End With
Set rngTo = Sheets("sheet2").Range("A1")
For Each rng In rngFrom
rngTo.Value = rng.Value
rngTo.Offset(1, 0).Value = rng.Offset(0, 1).Value '2 columns
rngTo.Offset(2, 0).Value = rng.Offset(0, 2).Value '3 columns
rngTo.Offset(3, 0).Value = rng.Offset(0, 3).Value '4 columns
Set rngTo = rngTo.Offset(4, 0) 'number of rows per item
Next rng
End Sub

--
AncientLearner
...never to old to learn something new


--

Dave Peterson

Peter T

macro OK in Excel 2003 but NOT in Excel 2000
 
I don't see anything wrong in your code that would fail due to version.

However your code would fail if the activesheet is not a worksheet, eg it's
a chart-sheet or no visible sheet. Just in case, it might be worth the two
changes to the commented line below -

With Sheets("sheet1")
' Set rngFrom = .Range(.Range("A1"), .Cells(Rows.Count, "A").End(xlUp))
Set rngFrom = .Range(.Range("A1"), .Cells(.Rows.Count, 1).End(xlUp))

Regards,
Peter T


"AncientLearner" wrote in message
...
I can run to following code in Excel 2003 but when I run it in Excel 2000

I
get an error/debug at the line Set rngFrom = <<<

Should I declare different variables because of 2000 version?

****
Sub ADP_ExportExcel()
'transpose horizontal column output (multiCol) into single column
(vertical)
Dim rngFrom As Range
Dim rngTo As Range
Dim rng As Range
With Sheets("sheet1")
Set rngFrom = .Range(.Range("A1"), .Cells(Rows.Count, "A").End(xlUp))

<<
End With
Set rngTo = Sheets("sheet2").Range("A1")
For Each rng In rngFrom
rngTo.Value = rng.Value
rngTo.Offset(1, 0).Value = rng.Offset(0, 1).Value '2 columns
rngTo.Offset(2, 0).Value = rng.Offset(0, 2).Value '3 columns
rngTo.Offset(3, 0).Value = rng.Offset(0, 3).Value '4 columns
Set rngTo = rngTo.Offset(4, 0) 'number of rows per item
Next rng
End Sub

--
AncientLearner
...never to old to learn something new




AncientLearner

macro OK in Excel 2003 but NOT in Excel 2000
 
Thanks, that seems to have worked.
--
AncientLearner
....never to old to learn something new


"AncientLearner" wrote:

I can run to following code in Excel 2003 but when I run it in Excel 2000 I
get an error/debug at the line Set rngFrom = <<<

Should I declare different variables because of 2000 version?

****
Sub ADP_ExportExcel()
'transpose horizontal column output (multiCol) into single column
(vertical)
Dim rngFrom As Range
Dim rngTo As Range
Dim rng As Range
With Sheets("sheet1")
Set rngFrom = .Range(.Range("A1"), .Cells(Rows.Count, "A").End(xlUp)) <<

End With
Set rngTo = Sheets("sheet2").Range("A1")
For Each rng In rngFrom
rngTo.Value = rng.Value
rngTo.Offset(1, 0).Value = rng.Offset(0, 1).Value '2 columns
rngTo.Offset(2, 0).Value = rng.Offset(0, 2).Value '3 columns
rngTo.Offset(3, 0).Value = rng.Offset(0, 3).Value '4 columns
Set rngTo = rngTo.Offset(4, 0) 'number of rows per item
Next rng
End Sub

--
AncientLearner
...never to old to learn something new


AncientLearner

macro OK in Excel 2003 but NOT in Excel 2000
 
Your suggestion put the final resolution to another problem and really solved
my issue. Thanks
--
AncientLearner
....never to old to learn something new


"Peter T" wrote:

I don't see anything wrong in your code that would fail due to version.

However your code would fail if the activesheet is not a worksheet, eg it's
a chart-sheet or no visible sheet. Just in case, it might be worth the two
changes to the commented line below -

With Sheets("sheet1")
' Set rngFrom = .Range(.Range("A1"), .Cells(Rows.Count, "A").End(xlUp))
Set rngFrom = .Range(.Range("A1"), .Cells(.Rows.Count, 1).End(xlUp))

Regards,
Peter T


"AncientLearner" wrote in message
...
I can run to following code in Excel 2003 but when I run it in Excel 2000

I
get an error/debug at the line Set rngFrom = <<<

Should I declare different variables because of 2000 version?

****
Sub ADP_ExportExcel()
'transpose horizontal column output (multiCol) into single column
(vertical)
Dim rngFrom As Range
Dim rngTo As Range
Dim rng As Range
With Sheets("sheet1")
Set rngFrom = .Range(.Range("A1"), .Cells(Rows.Count, "A").End(xlUp))

<<
End With
Set rngTo = Sheets("sheet2").Range("A1")
For Each rng In rngFrom
rngTo.Value = rng.Value
rngTo.Offset(1, 0).Value = rng.Offset(0, 1).Value '2 columns
rngTo.Offset(2, 0).Value = rng.Offset(0, 2).Value '3 columns
rngTo.Offset(3, 0).Value = rng.Offset(0, 3).Value '4 columns
Set rngTo = rngTo.Offset(4, 0) 'number of rows per item
Next rng
End Sub

--
AncientLearner
...never to old to learn something new






All times are GMT +1. The time now is 11:35 PM.

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