模拟RMS计算返回错误的Excel函数
下面是我编写的一个Excel VBA脚本,试图在Excel中计算RMS。模拟RMS计算返回错误的Excel函数,excel,vba,user-defined-functions,Excel,Vba,User Defined Functions,下面是我编写的一个Excel VBA脚本,试图在Excel中计算RMS。avg变量是一个单单元格值,setter是一个范围。这应该有点像均方根误差函数。它需要在整个工作表中滚动应用,而不仅仅是在一个静态数据集上,因此它需要是一个UDF 需要说明的是,这将返回一个#NAME?错误。输入公式=运行u测试(S86,T66:T86);所有S和T列都是返回数字的公式 任何建议都将不胜感激,谢谢 Function runs_test(avg As Double, setter As Range) Optio
avg
变量是一个单单元格值,setter
是一个范围。这应该有点像均方根误差函数。它需要在整个工作表中滚动应用,而不仅仅是在一个静态数据集上,因此它需要是一个UDF
需要说明的是,这将返回一个#NAME?
错误。输入公式=运行u测试(S86,T66:T86)
;所有S和T列都是返回数字的公式
任何建议都将不胜感激,谢谢
Function runs_test(avg As Double, setter As Range)
Option explicit
Dim i As Variant
Dim counter As Double
Dim er As Double
For Each i In setter
er = (avg - i.Value) ^ 2
counter = counter + er
Next i
total = setter.Cells.Count
er = counter / total
er = er ^ (1 / 2)
runs = er
End Function
几个小的打字错误修正和语法修正产生了以下工作功能
Option Explicit
Function runs_test(avg As Double, setter As Range)
Dim i As Range
Dim counter As Double, er As Double
Dim total As Long
For Each i In setter
er = (avg - i.Value) ^ 2
counter = counter + er
Next i
total = setter.Cells.Count
er = counter / total
er = er ^ (1 / 2)
runs_test = er
End Function
请注意,函数代码进入公共模块代码表,而不是专用工作表代码表。在VBE中使用Insert、Module将公共模块代码表引入到项目中
首先将
runs=er
更改为runs\u test=er
并打开。Dim i as Range
。还有,z
的作用是什么?@Jeeped,谢谢,并更改/编辑了-仍然不起作用。@urderboy,抱歉,那不应该在里面。我们不知道“仍然不工作”是什么意思。复杂的错误输出错误?这很奇怪-您的函数使用了您提供的数据示例。然而,在我的工作表中,它不起作用。是否有理由它可能不适用于包含公式的单元格,而不是硬代码?再次感谢你的帮助!也许您的公式返回的是文本,甚至是看起来像数字的文本。在没有看到公式的情况下,很难陈述任何确定的内容。也许这是一个新的问题,因为udf似乎在处理真实的数字。