【发布时间】:2016-09-12 14:12:15
【问题描述】:
这段代码只是为了计算简单的移动平均线。打开一个 excel,在 C 行从 1 到 20 创建虚拟数组。我想创建一个函数,例如:SMA(C7,3) = 它应该给出 C5:C7 的平均值。
很久之后回到VBA,无法弄清楚以下代码中的错误。
Function sma1(rng As Range, N As Integer)
Set rng = rng.Resize(-N + 1, 0)
sma1 = Application.WorksheetFunction.average(rng)
End Function
【问题讨论】:
-
将Resize中的
0改为1。它与 offset() 不同。 -
仅供参考,this answer 说明了您收到重命名函数的建议的原因。