Я думаю, что этот вопрос задавали тысячу раз, но после нескольких часов поиска я до сих пор не могу найти никакой помощи. Поэтому мне нужно использовать вектор чисел в качестве входных данных, выполнить вычисления для всех этих чисел и затем вернуть результаты в виде вектора с той же размерностью, что и входной вектор. Так позволяет сказать, что я хочу взять некоторые цифры, а затем вычесть все из них по одному и поэтому мой лист Excel должен выглядеть следующим образомVBA: попытка вернуть массив, но только получить первое значение
A B
1 6 5
2 7 6
3 8 7
4 9 8
5 10 9
где колонка А является входным вектором и B должен быть выход. Но мой вывод - это только столбец нулей. Отладка также говорит о том, что правильные числа есть в выходном векторе, но я могу напечатать только первое значение, которое затем переходит ко всем ячейкам. На данный момент мой код выглядит следующим образом
Public Function Vector(values As Range) As Variant
Dim arraySize As Integer, i As Integer
arraySize = values.rows.Count
Dim returnArray() As Variant
ReDim returnArray(arraySize)
For i = 1 To arraySize
returnArray(i - 1) = values(i, 1) - 1
Next i
Vector = returnArray
End Function
При отладке, делает строку 'Vector = returnArray' дать вам то, что вы «ожидание», т.е. «Вектор» - это массив значений? – tospig
Можете ли вы добавить код, который вы используете, чтобы написать массив на листе? – tospig
Похоже, ваша проблема на данный момент заключается в том, что вы в основном используете 1D-массив. И что такое диапазон значений? –