Страницы: 1
RSS
VBA: выгрузить элемент массива в строку, без цикла
 
Доброй ночи (утра)
Помогите с таким вопросом, плиз
Есть массив двухмерный Arr(1 to 5, 1 to 3)
Можно каким либо способом выгрузить всю горизонталь элемента 1 в строку на листе начиная с (например) ячейки А4
Т.е. A4 = Arr(1,1); B4=Arr(1,2); C4 = Arr(1,3)
Без перебора каждого значения элемента
Изменено: jfd - 14.01.2016 01:29:16
 
Транспонировать массив?
 
vikttur, не понял если честно
Я представляю двухмерный массив (1 to 5, 1 to 3) как таблицу
1,1 - 1,2 -1,3
2,1 - 2,2 - 2,3
.....
5,1 - 5,2 - 5,3

если надо перенести на лист "строку" массива, нужно ли ее транспонировать?
Изменено: jfd - 14.01.2016 00:39:28
 
Вот это вставляет содержимое массива на лист начиная с ячейки А4
Код
range("a4").resize(ubound(arr,1) - lbound(arr,1) + 1, ubound(arr,2) - lbound(arr,2) +1) = arr

Вот это вставляет содержимое первой строки на лист начиная с ячейки А4
Код
range("a4").resize(1, ubound(arr,2) - lbound(arr,2) +1) = arr
Изменено: Все_просто - 14.01.2016 00:50:56
С уважением,
Федор/Все_просто
 
Так?
Код
Sub test()
    Dim arr As Variant
    With ActiveSheet
        arr = .Range("B3:E9").Value
        .Range("B20:E20").Value = Application.Index(arr, 3)
    End With
End Sub
KL
 
Код
Sub uuu()
Dim ArrData
    ArrData = Application.Transpose(Range("C2:G4"))
    Range("A4").Resize(5, 1).Value = ArrData
End Sub
 
Все_просто,нет, в вашем решении у меня выгрузило весь массив по вертикали и горизонтали на лист, где верхнее левое значение Arr(1,1) оказалось в ячейке A4.
А искомый результат это года выгрузит только первую "строку" массива:  в A4 = Arr(1,1); B4=Arr(1,2); C4 = Arr(1,3) и больше ничего

ПС. Второй вариант именно то что надо, кажется. Не заметил исправления вашего поста.

Можно его немного поподробнее разобрать? Можно вставить не первую "строку" массива, а например 2ю или 3ю?
Изменено: jfd - 14.01.2016 01:30:41
 
vikttur,извините меня, думаю одно пишу другое, хочу правильного решения. исправил первоначальный пост
 
KL, то что надо. Спасибо
Страницы: 1
Читают тему
Наверх