Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
模拟RMS计算返回错误的Excel函数_Excel_Vba_User Defined Functions - Fatal编程技术网

模拟RMS计算返回错误的Excel函数

模拟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

下面是我编写的一个Excel VBA脚本,试图在Excel中计算RMS。
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似乎在处理真实的数字。