我正在尝试将行的值移动到Excel中的列中。转置功能运行良好,但一次只能移动一行。我想得到一个宏,它将三列中的173行数据转换为一列。请参阅下面的示例。 提前感谢您的帮助。
行:
98,058 98,058 98,314 82,362 82,684 83,326 93,410 93,479 93,761
列:
98,058 98,058 98,314 82,362 82,684 83,326 93410 93479 93761
答案 0 :(得分:1)
以下内容将从A1的CurrentRegion将数据加载到数组中并从A5开始粘贴到一列中。
我假设数据是数字的,连续的,并且这是一次性的,而不是可能必须在不同大小的数据集上重复的练习。如果您的数据不是连续的,或者没有被空单元格绑定,那么您可以改为对该范围进行硬编码。
Private Sub transposeRows()
Dim inputRange As Variant
Dim myArray() As Long
Dim x As Long
Dim testCell As Range
'Get the range of data to copy'
Set inputRange = Range("A1").CurrentRegion
'Resize array to fit'
ReDim myArray(inputRange.Count - 1)
'Fill up array with data'
For Each testCell In inputRange
myArray(x) = testCell
x = x + 1
Next testCell
'Fill destination range'
Range("A5:A" & UBound(myArray) + 5) = WorksheetFunction.Transpose(myArray)
End Sub