Excel VBA转换数据

Excel VBA转换数据,excel,vba,transpose,Excel,Vba,Transpose,我有一个数据集,我正在尝试重新定向,但Excel的转置函数无法用于我正在尝试的操作。我确实希望将原始数据从行转置到列,但我希望将原始数据的每一行中的数据堆叠到单独的表中的单个列中。换句话说,如果我有一个由3行3列组成的数组,我想复制并粘贴数据,以便原始数组的9个单元格在单独的工作表中成为1×9的数组 我的VBA技能充其量只是初级的,我曾尝试编写一个带有For Next循环的宏,但似乎无法正确实现。有什么建议吗?此代码将把一系列单元格转换为一维数组: Dim rngSource As Range

我有一个数据集,我正在尝试重新定向,但Excel的转置函数无法用于我正在尝试的操作。我确实希望将原始数据从行转置到列,但我希望将原始数据的每一行中的数据堆叠到单独的表中的单个列中。换句话说,如果我有一个由3行3列组成的数组,我想复制并粘贴数据,以便原始数组的9个单元格在单独的工作表中成为1×9的数组


我的VBA技能充其量只是初级的,我曾尝试编写一个带有For Next循环的宏,但似乎无法正确实现。有什么建议吗?

此代码将把一系列单元格转换为一维数组:

Dim rngSource As Range
Dim rng As Range
Dim MiMatriz() As Integer
Dim MiPos As Integer
Dim i As Integer

Set rngSource = Range("A1").CurrentRegion

ReDim MiMatriz(1 To 1, 1 To rngSource.Cells.Count)

For Each rng In rngSource.Cells
    MiPos = (((rng.Row - rngSource.Cells(1, 1).Row + 1) - 1) * rngSource.Columns.Count) + (rng.Column - rngSource.Cells(1, 1).Column + 1)
    MiMatriz(1, MiPos) = rng.Value
Next rng

For i = 1 To rngSource.Cells.Count
    Debug.Print "Index:(1," & i & ")", MiMatriz(1, i)
Next i

Erase MiMatriz
Set rngSource = Nothing

执行此代码时得到的输出是:

Index:(1,1)    1 
Index:(1,2)    2 
Index:(1,3)    3 
Index:(1,4)    4 
Index:(1,5)    5 
Index:(1,6)    6 
Index:(1,7)    7 
Index:(1,8)    8 
Index:(1,9)    9