Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Vba 另一个自定义项中的Excel用户定义函数未更新_Vba_Excel - Fatal编程技术网

Vba 另一个自定义项中的Excel用户定义函数未更新

Vba 另一个自定义项中的Excel用户定义函数未更新,vba,excel,Vba,Excel,这是我的第一篇帖子,所以我希望这一切都没问题……我已经在别处找过了,但在任何地方都找不到这个具体的问题 背景: 假设我有一个实验,有4种可能失败的方式,每种失败都有不同的代码: “R1”->“R4”与 “R”=否失败 我最初编写了4个单独的UDF,然后在我的工作表单元格中嵌套了IF函数,以测试每个UDF的输出并返回相关的失败代码(如果通过,则返回“R”)。由于需要所有参数,这将导致相当长的Excel公式 每个UDF都有几个基于多个单元格中的值的参数。我的想法是创建一个“主函数”,它只调用每个UD

这是我的第一篇帖子,所以我希望这一切都没问题……我已经在别处找过了,但在任何地方都找不到这个具体的问题

背景:

假设我有一个实验,有4种可能失败的方式,每种失败都有不同的代码: “R1”->“R4”与 “R”=否失败

我最初编写了4个单独的UDF,然后在我的工作表单元格中嵌套了IF函数,以测试每个UDF的输出并返回相关的失败代码(如果通过,则返回“R”)。由于需要所有参数,这将导致相当长的Excel公式

每个UDF都有几个基于多个单元格中的值的参数。我的想法是创建一个“主函数”,它只调用每个UDF并返回正确的代码。这样,在单元格中,它看起来就像(例如)=Master()

问题:

我首先将单元格范围放入主函数,然后将其作为参数传递到函数中(例如

这对我来说是可行的,但我最终必须将参数的负载传递到这个主函数中,我可以这样做,但我想知道是否还有其他方法

注意-如果可能,我希望避免使用Application.Volatile

就像我说的,这是我的第一篇帖子,所以我希望我已经遵守了所有的论坛规则等。我也希望我是清楚的


谢谢。

我认为你已经说明了两种可能的方法。通过范围或Application.volatile。我遇到了类似的问题。Application.Volatile并没有为我解决这个问题。你应该使用一个合适的描述性名称,而不是命名一个函数UDF。
Function Master()

Dim p1 as Range
Dim p2 as Range

Set p1 = Range("A1")
Set p2 = Range("B1")

myR1 = UDF1(p1)
myR2 = UDF2(p2)

If myR1 <> "" Then
Master = myR1
...

End Function
Function Master(p1 as Range, p2 as Range)

myR1 = UDF1(p1)
myR2 = UDF2(p2)

End Function