У меня есть вектор (как строка и столбец), так и я хочу вычислить определенную функцию (например, x + 5) для каждого значения в этом векторе, а I хотите, чтобы он отображался в указанном массиве ячеек. Я написал функцию, и в Excel она работает для одной ячейки или для вектора строки. Но когда я пытаюсь использовать его на векторе столбца, он возвращает значение, вычисленное для первой ячейки для всех значений в массиве. Не могли бы вы помочь мне, что я сделал неправильно или почему он не работает? Мой код lookd как этотVBA: Как я могу заставить свою функцию работать как для вертикального, так и для горизонтального вектора
Option Base 1
Public Function TestFunction(arr As Range) As Variant
Dim i As Integer
Dim j As Integer
Dim NoCols As Integer
Dim NoRws As Integer
Dim FV() As Double
NoCols = arr.Columns.Count
NoRws = arr.Rows.Count
If NoCols = 1 Then
ReDim FV(NoRws)
For i = 1 To NoRws
x = arr.Rows(i)
FV(i) = x + 5
Next i
Else
ReDim FV(NoCols)
For j = 1 To NoCols
y = arr.Columns(j)
FV(j) = y + 5
Next j
End If
TestFunction = FV()
End Function
что такое 'FX' в вашем коде, Вы имели в виду, чтобы иметь' FV' вместо – Jeanno
Вы ReDim FX, но объявляете и возвращаете FV. Я не понимаю, как это будет работать в любом случае. Является ли этот код точной копией вашего рабочего кода? – Sobigen
Да, я имел в виду FV, просто набрав ошибку. Я уже исправил это. в моем исходном коде это то же самое, и он не работает –