У меня есть массив и вектор. Я хочу передать / заменить строку в массиве на вектор.
2d array, as below
arr = [[1, 2],
[3, 4],
[a, b]] <--- replace with vct here
...where vct = [[5, 6]]
В то время как это может быть сделано бесхитростно, используя наивный цикл, мне интересно, есть ли какой-нибудь творческий обходной путь для этого. Пример как ниже.
Использование наивного цикла:
For i = 1 to 2
arr(3, i) = vct(i)
Next i
... или какой-нибудь умный обходной путь:
arr(3, :) = vct ...where ":" represents "all columns"
Ожидаемый результат:
arr = [[1, 2],
[3, 4],
[5, 6]]
Tbh У меня мало ожиданий от vba, поскольку даже простая индексация массива на самом деле не вещь. Я просто надеюсь, если кто-нибудь захочет сделать это, чтобы найти решение. Тч
Изменить, чтобы улучшить ясность вопроса, добавив блок кода VBA. Смотри ниже
Dim arr(1 to 3, 1 to 2) as Integer
Dim vct(1 to 2) as Integer
Dim i as Integer
' filling in arr
arr(1, 1) = 1
arr(1, 2) = 2
arr(2, 1) = 3
arr(2, 2) = 4
arr(3, 1) = 10
arr(3, 2) = 20
' filling in vct
vct(1) = 5
vct(2) = 6
' passing the vector vct into last row of arr using for loop
For i = 1 to 2
arr(3, i) = vct(i)
Next i
' as a result,
' arr(3, 1) = 5, and
' arr(3, 2) = 6
' which does its work perfectly
' but I am looking if there is any possibility
' to have a non-looping approach such as below
' arr(3, :) = vct
'
' this is because I am too accustomed to python syntax
' where it can be done as using ":"