Элементные операции с массивами в функции VBA - PullRequest
0 голосов
/ 06 мая 2020

Я создал пользовательскую функцию в VBA, входными данными для которой являются значение ячейки и три разных диапазона одинаковой длины. Код примерно такой, как показано ниже:

Public Function MYTEST(CELLVALUE As Double, ByRef INPRNG As Range, ByRef RNG1 As Range, ByRef RNG2 As Range)
Dim i As Double
DIM A As Double
DIM B As Double
Dim MODRNG As Range

For i = LBound(INPRNG) To UBound(INPRNG)
    MODRNG(i) = INPRNG(i) * RNG1(i) + CELLVALUE * RNG2(i) 
Next i
A= MODRNG.Cells(1,1)
B= MODRNG.Cells(2,1)
mytest =A+B
End Function

Я получаю #VALUE! ошибка при запуске этого кода. Мой вопрос состоит из трех частей:

  1. Мои переменные / диапазоны объявлены неправильно или For l oop вызывает проблемы?
  2. Есть ли способ использовать For Each l oop вместо For Next?
  3. Могу ли я выполнить операцию с массивом (для l oop) на моем листе Excel и отправить измененный массив в функцию?

Пожалуйста см. снимок для ясности. enter image description here

Спасибо!

1 Ответ

0 голосов
/ 06 мая 2020

Я не уверен, понял ли я вашу цель, но это вызовет число, взятое из первого и второго (позиция ячейки / массива) для MODRNG. первое и второе значения, я не понимаю, зачем вам диапазон больше 2 ячеек.

...