Excel VBA - 用户定义函数 - 可变大小参数

Posted

技术标签:

【中文标题】Excel VBA - 用户定义函数 - 可变大小参数【英文标题】:Excel VBA - User Defined Function - Variable size parameters 【发布时间】:2014-11-25 00:34:17 【问题描述】:

我正在尝试创建一个用户定义的函数来计算真实库存周数。该函数只有两个输入参数:总库存和每周预测数据。每周预测数据将排列成一行,用户可以选择输入。我希望它像 SUM 函数一样工作,用户可以用鼠标选择范围的参数大小,或者在输入过程中手动键入。我不知道如何做到这一点。一旦我在 UDF 中拥有数据,我就知道我想对它做什么,但我正在努力研究如何实际摄取我需要的数据。谁能指出我正确的方向?

【问题讨论】:

【参考方案1】:

一个粗略的例子,但是在标准代码模块中放置这样的东西:

Public Function SumMyData(rngToSum As Range) As Double

Dim weeksOfCover As Double

weeksOfCover = 10.54

 SumMyData = WorksheetFunction.Sum(rngToSum) * weeksOfCover

End Function

然后在你的工作簿中,使用=SumMyData(C3:C20)

【讨论】:

感谢您的帮助。如果我想单独处理范围内的每个单元格而不是总和怎么办?有没有办法将范围内的每个单元格加载到数组中? 您可以在 UDF 代码中使用 For Each 循环,例如Dim rCell As Range : For Each rCell In rngToSum : '// Do Something : Next rCell

以上是关于Excel VBA - 用户定义函数 - 可变大小参数的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL 的自定义 VBA 函数中的用户定义警告

通过用户定义的函数VBA缩短excel公式

易失性用户定义函数未按预期重新计算(VBA/Excel)

Excel VBA - 条件格式中的用户定义函数

用户定义的函数在 vba 中工作正常,而从显示“值”错误的 excel 表调用时

VBA Excel中的用户定义函数不可访问?