двумерный массив vba excel



Excel vba двумерный массив

Автор Александр Златенков задал вопрос в разделе Другие языки и технологии

vba excel. Как присвоить одномерному диапазону один ряд из значений из двумерного массива? и получил лучший ответ

Ответ от Константин Карначук[активный]
Dim r%, c%, v v = Array(Array(1, 2, 3, 4, 5, 6, 7), Array(2, 6, 4, 3, 7, 2, 3), Array(4, 5, 6, 1, 2, 3, 5)) r = 21: c = 1 'одну вторую строку массива в один диапазон ActiveSheet.Range(Cells(r, c), Cells(r, c + UBound(v(2)))) = v(2) r = 23: c = 1 'первое значение первой строки массива в другой диапазон ActiveSheet.Range(Cells(r, c), Cells(r + 2, c + UBound(v(2)))) = v(0)(0)

Ответ от Александр Пушков[активный]
Подставьте переменные

Ответ от Андрей Лящук[эксперт]
А можно немного наркоманский код предложить? ;)Sub gg() Dim arr As Variant Dim s As String Dim d As New DataObject arr = Array(Array(1, 2, 3, 4, 5, 6, 7), _ Array(2, 6, 4, 3, 7, 2, 3), _ Array(4, 5, 6, 1, 2, 3, 5)) ActiveWorkbook.Names.Add Name:="rngish", RefersToR1C1:="=Лист1!R1C1:R7C1" For i = 0 To UBound(arr(1)): s = s & Str(arr(1)(i)) & Chr(10): Next d.SetText (s) d.PutInClipboard ActiveSheet.Paste Range(ActiveWorkbook.Names("rngish").RefersTo) ThisWorkbook.ActiveSheet.Cells(1, 2) = arr(0)(0)End Sub

Ответ от Алексей Матевосов (AlexM)[гуру]
Допустим исходный массив (диапазон) - D1:F7Копировать надо один столбец массива в диапазон A1:A7Range("D1:F7").Resize(7, 1).Offset(0, n).Copy (Sheets(1).Range("A1:A7"))при n = 0,1,2 будет копироваться 1,2 или 3 столбец

Ответ от Aleksandr H.[гуру]
For i = 1 to 7 docells(i,1).value = Arr(1,i-1) ' масив начнем с 0-й позициикак-то так

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: vba excel. Как присвоить одномерному диапазону один ряд из значений из двумерного массива?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*