У меня есть этот код, который будет заполнять массивPaste 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 »)' –