Как вернуть сумму в функции VBA - PullRequest
0 голосов
/ 16 ноября 2018

Я создаю функцию, которая использует ячейку и диапазон ячеек для создания массива. Первые четыре числа этого массива используются для выполнения некоторых вычислений. В конце я хочу вернуть сумму в ячейки. На отладке я добавляю часы к сумме A + B + C + D, и результат отображается отлично. Тем не менее, он не возвращает значение в ячейку, когда я вызываю функцию на листе. Почему это?

Public Function getFone(temp As Long, coeffs As Range) As Double
Dim coeffArray As Variant
Dim A As Double
Dim B As Double
Dim C As Double
Dim D As Double
coeffArray = coeffs.Value
A = ((coeffArray(1, 1)) * (temp))
B = ((coeffArray(1, 2) / 2) * (temp * temp))
C = ((coeffArray(1, 3) / 3) * (temp * temp * temp))
D = ((coeffArray(1, 4) / 4) * (temp * temp * temp * temp))
getFone = (A + B + C + D)
End Function

1 Ответ

0 голосов
/ 16 ноября 2018

Код работает, если диапазон равен четырем горизонтальным ячейкам, а параметр temp и диапазон содержат цифры.Таким образом, потенциальные проблемы, которые могут вызвать результат #Value:

  • Параметры (температура и значения в диапазоне) не являются числовыми
  • Расчетное значение превышает размер двойного
  • Диапазон не является горизонтальным диапазоном из четырех ячеек

working example

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...