我有这样的代码,将填充数组粘贴VBA阵列
Sub rangearray()
Dim arr() As Variant
Dim Rng As Range
Dim myCell As Range
Dim i As Integer
Set Rng = ActiveSheet.Range("G10:G14")
For Each myCell In Rng
ReDim Preserve arr(i)
arr(i) = myCell
i = i + 1
Next myCell
ActiveSheet.Range("H10:H14") = arr()
End Sub
在这里你可以看到,在监视窗口中值是什么一直在
除了加载,当我将数组添加回工作簿时,它仅粘贴数组的第一个元素。
是否有可能将整个阵列工作表粘贴不通过阵列,具有循环?
UPDATE考虑看看从Sorceri链接后我已经修改了代码使用.Transpose功能,所以我修改的代码现在看起来是这样:
Sub rangearray()
Dim arr() As Variant
Dim Rng As Range
Dim myCell As Range
Dim i As Integer
Set Rng = ActiveSheet.Range("A1:A5")
For Each myCell In Rng
ReDim Preserve arr(i)
arr(i) = myCell
i = i + 1
Next myCell
ActiveSheet.Range("B1:B5") = WorksheetFunction.Transpose(arr)
End Sub
为什么你需要一个这样的数组?请参阅[本](http://stackoverflow.com/questions/19277994/error-13-when-pasting-from-another-workbook/19280614#19280614) –
因为我想从一个数组粘贴,而不是从另一个范围 – spences10
但是,那不是你在做什么? '范围(“G10:G14”) - >范围(“H10:H14”)' –