首页 > 解决方案 > 如何在 VBA 函数中返回总和

问题描述

我正在创建一个函数,它需要一个单元格和一系列单元格来创建一个数组。该数组的前四个数字用于执行一些计算。最后,我想将这些总和返回给单元格。在调试时,我在总和 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

标签: excelvba

解决方案


如果范围是四个水平单元格并且 temp 参数和范围包含数字,则代码有效。因此,可能触发 #Value 结果的潜在问题是:

  • 参数(温度和范围内的值)不是数字
  • 计算的值超过了 double 的大小
  • 该范围不是四个单元格的水平范围

工作示例


推荐阅读