View Single Post
  #12   Report Post  
Posted to microsoft.public.excel.programming
Robert McCurdy Robert McCurdy is offline
external usenet poster
 
Posts: 102
Default Macro issues - trying to get an array to a column

Try this Val,

Sub aMatrix2Column()
Dim v As Range, x, i As Long, c As Range
On Error Resume Next
Set v = Application.InputBox("Select range to copy", Type:=8)
On Error GoTo 0

If v Is Nothing Then
MsgBox "You have not selected a range." & vbCr & _
"Closing now!", vbExclamation
Exit Sub
End If

i = 0
ReDim x(0 To v.Count - 1)
For Each c In v.Cells
x(i) = c.Value
i = i + 1
Next c

'u can use your inputbox for the output range here
Range("H1").Resize(v.Count, 1).Value2 = _
Application.Transpose(x)
End Sub


Regards
Robert McCurdy

"valkyrie" wrote in message
...
I found a great macro I want to use to convert an array to a column. This
one takes an array like so:

1 2 3
4 5 6

and makes it

1
4
2
5
3
6

But I need

1
2
3
4
5
6

Can anyone help me edit it? I can't get it to work for the life of me.
Thanks!

Sub Matrix2Column()
Dim v As Variant
Dim nCol As Long
Dim nRow As Long
Dim rOut As Range
Dim iCol As Long

On Error Resume Next
v = Application.InputBox("Select range to copy", Type:=8).Value
If IsEmpty(v) Then Exit Sub
nRow = UBound(v, 1)
nCol = UBound(v, 2)

Set rOut = Application.InputBox("Select destination",
Type:=8).Resize(nRow, 1)
If rOut Is Nothing Then Exit Sub

For iCol = 1 To nCol
rOut.Value = WorksheetFunction.Index(v, 0, iCol)
Set rOut = rOut.Offset(nRow)
Next iCol
End Sub