请帮助我到处搜索,但似乎所有方法都失败了。这是我的代码
Dim MyArray(1 To 20) As Range
Dim A0 As Integer
Cells(1, 1).Select
For A0 = 1 To 20
Set MyArray(A0) = Range(ActiveCell, ActiveCell.Offset(1, 0))
ActiveCell.Offset(0, 1).Select
Next
Range("A15:T15") = Application.Transpose(MyArray)
Range("A15:T16") = Application.Transpose(MyArray)
Range("A15:T15") = WorksheetFunction.Transpose(MyArray)
Range("A15:T16") = WorksheetFunction.Transpose(MyArray)
我已经尝试了最后4个程序。但失败了。这只是一个总结,使其向东读。感谢
答案 0 :(得分:2)
比我的评论更进一步......试试这个例子......
Sub a()
Dim x(2) As Integer
x(0) = 1
x(1) = 2
Range("A10:B10").Value = x
End Sub
这正确地将数组输出到单元格A10
和B10
对于2D阵列,您可以使用此示例...
Sub a()
Dim x(2,2) As Integer
x(0,0) = 1
x(0,1) = 2
x(1,0) = 3
x(1,1) = 4
Range("A10:B11").Value = x
End Sub
你仍然不需要转置!
答案 1 :(得分:0)
您可以将数据从"范围移动到数组"和"阵列到范围"每次操作只使用一行。
Sub CopyUsingArray()
' Create array
Dim Marks() As Variant
' Read 20 values into array from sheet1
Marks = Range("A1:T1").Value
' Write the 20 values to row 15
Range("A15:T15").Value = Marks
End Sub
当然,如果您只是从一个范围复制到另一个范围,则不需要使用数组。您可以像这样使用Range.Copy方法
Sub CopyRange()
Range("A1:T1").Copy Destination:=Range("A15")
End Sub
如果您需要转置数据,可以这样做
Sub CopyRange_Transpose()
Range("A1:T1").Copy
Range("A15").PasteSpecial Transpose:=True
End Sub