如何在VBA函数中返回总和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在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
答案

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

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

working example

以上是关于如何在VBA函数中返回总和的主要内容,如果未能解决你的问题,请参考以下文章

返回另一个对象中列总和的成员函数

哈斯克尔。我很困惑这个代码片段是如何工作的

Excel VBA函数:如何传递范围、转换为数组、反转和返回数组

vba中如何在一个function中 输入一个参数返回另一个参数

LibreOffice (Calc) VBA 单元格总和(按索引)

执行代码时,执行不会在 excel vba 函数中移动