私はあなたがウォッチウィンドウ内の値を除いて貼り付け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
なぜこのための配列が必要ですか? [THIS](http://stackoverflow.com/questions/19277994/error-13-when-pasting-from-another-workbook/19280614#19280614) –
アレイから貼り付けたいので、別の範囲からは貼りません – spences10
しかし、それはあなたがやっていることではありませんか? 'Range(" G10:G14 ") - > Range(" H10:H14 ")' –