View Single Post
  #8  
Old March 16th, 2010, 09:27 AM posted to microsoft.public.excel.worksheet.functions
Bob Phillips[_3_]
external usenet poster
 
Posts: 489
Default Need transpose? help....

Partly Howard, but windows under the covers converts integers to Long,
processes the request, then converts the long back to the integer as passed.
So by declaring as integer you are causing two unnecessary conversions, so
it is just more efficient. Many API calls require an integer as the
parameter type, but in your/my code, there is no real reason to use integer
unless you want to use it as some sort of number validation (which I would
argue is the wrong way to do it).

--

HTH

Bob

"L. Howard Kittle" wrote in message
...
Thanks Bob.

Your advice rings familiar and I appreciate the reminder from an MVP to a
hobby lurker.

So it has to be a Long because the possible 'scope' of the value of i or
j, given the code, may exceed the value of an Integer?

Regards,
Howard


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

They should be Longs.

Yes, you should always dimension your variables, you can always get
caught out with mis-spellings if you don't. I always do in my own code, I
just miss them sometimes in posts, especially if responding to someone
who doesn't do so.

--

HTH

Bob

"L. Howard Kittle" wrote in message
...
Hi Bob,

I tested your 'lil sonnet and it works fine with Option Explicit edited
out. Then I dimmed LastRow and LastCol as Range and that was fine, but
errored out at i and j, I tried Integer and Range and neither worked.
What would these be declared as??

Is there any good reason to dim these variables? Seems I hear you
always should.

Thanks
Howard

"Bob Phillips" wrote in message
...
Off the top, untested

With ActiveSheet

LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = LastRow To 1 Step -1

For j = LastCol To 2 Step -1

.Rows(i + 1).Insert
.Cells(i, j).Cut .Cells(i + 1, "A")
Next j
Next i
End With


--

HTH

Bob

"Jethro Bodeene" Jethro wrote in
message ...
I have a spreadsheet with 151 columns by 49 rows of data. I need to
transpose this data from its current state, to only 1 vertical column.
How
can I do this? Thks