![]() |
Help with VB macro
Can someone help me edit this macro? It currently reads an array and
converts it to a column, for example. 1 2 3 4 5 6 Becomes 1 4 2 5 3 6 However, I need it to become 1 2 3 4 5 6 Can anyone help me edit it to do so, I've been struggling with this for too long. Thank you! 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 |
Help with VB macro
Insert in the appropriate place:
v = WorksheetFunction.Transpose(v) -- Steve "valkyrie" wrote in message ... Can someone help me edit this macro? It currently reads an array and converts it to a column, for example. 1 2 3 4 5 6 Becomes 1 4 2 5 3 6 However, I need it to become 1 2 3 4 5 6 Can anyone help me edit it to do so, I've been struggling with this for too long. Thank you! 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 |
Help with VB macro
Combined, of course with:
Select Case MsgBox("Do you wish to transpose by rows first?", vbYesNo ... -- Steve "AltaEgo" <Somewhere@NotHere wrote in message ... Insert in the appropriate place: v = WorksheetFunction.Transpose(v) -- Steve "valkyrie" wrote in message ... Can someone help me edit this macro? It currently reads an array and converts it to a column, for example. 1 2 3 4 5 6 Becomes 1 4 2 5 3 6 However, I need it to become 1 2 3 4 5 6 Can anyone help me edit it to do so, I've been struggling with this for too long. Thank you! 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 |
Help with VB macro
"valkyrie" wrote: Can someone help me edit this macro? It currently reads an array and converts it to a column, for example. 1 2 3 4 5 6 Becomes 1 4 2 5 3 6 However, I need it to become 1 2 3 4 5 6 Can anyone help me edit it to do so, I've been struggling with this for too long. Thank you! 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 Sub Matrix2Column() Dim v As Range Dim rOut As Range Dim i As Long On Error Resume Next Set v = Application.InputBox("Select range to copy", Type:=8) If TypeName(v) = "Nothing" Then Exit Sub Set rOut = Application.InputBox("Select destination", Type:=8) If TypeName(rOut) = "Nothing" Then Exit Sub For i = 1 To v.Count rOut.Offset(i) = v.Item(i) Next i End Sub regards r Il mio ultimo lavoro ... http://excelvba.altervista.org/blog/...ternative.html |
All times are GMT +1. The time now is 05:17 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com