Vba 另一个自定义项中的Excel用户定义函数未更新
这是我的第一篇帖子,所以我希望这一切都没问题……我已经在别处找过了,但在任何地方都找不到这个具体的问题 背景: 假设我有一个实验,有4种可能失败的方式,每种失败都有不同的代码: “R1”->“R4”与 “R”=否失败 我最初编写了4个单独的UDF,然后在我的工作表单元格中嵌套了IF函数,以测试每个UDF的输出并返回相关的失败代码(如果通过,则返回“R”)。由于需要所有参数,这将导致相当长的Excel公式 每个UDF都有几个基于多个单元格中的值的参数。我的想法是创建一个“主函数”,它只调用每个UDF并返回正确的代码。这样,在单元格中,它看起来就像(例如)=Master() 问题: 我首先将单元格范围放入主函数,然后将其作为参数传递到函数中(例如 这对我来说是可行的,但我最终必须将参数的负载传递到这个主函数中,我可以这样做,但我想知道是否还有其他方法 注意-如果可能,我希望避免使用Application.Volatile 就像我说的,这是我的第一篇帖子,所以我希望我已经遵守了所有的论坛规则等。我也希望我是清楚的Vba 另一个自定义项中的Excel用户定义函数未更新,vba,excel,Vba,Excel,这是我的第一篇帖子,所以我希望这一切都没问题……我已经在别处找过了,但在任何地方都找不到这个具体的问题 背景: 假设我有一个实验,有4种可能失败的方式,每种失败都有不同的代码: “R1”->“R4”与 “R”=否失败 我最初编写了4个单独的UDF,然后在我的工作表单元格中嵌套了IF函数,以测试每个UDF的输出并返回相关的失败代码(如果通过,则返回“R”)。由于需要所有参数,这将导致相当长的Excel公式 每个UDF都有几个基于多个单元格中的值的参数。我的想法是创建一个“主函数”,它只调用每个UD
谢谢。我认为你已经说明了两种可能的方法。通过范围或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