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