这是我的第一篇文章,所以我希望这一切都好......我已经在其他地方看过了,无法在任何地方找到这个具体问题。
背景:
假设我有一个实验,有4种方法可能会失败,每个失败都有不同的代码: ' R 1' - > ' R 4'同 ' R' =没有失败
我最初编写了4个单独的UDF,然后在我的工作表单元格中有嵌套的IF函数来测试每个函数的输出并返回相关的失败代码(或者如果它通过了R')。使用所需的所有参数,这会产生相当长的Excel公式。
每个UDF都有几个基于多个单元格中的值的参数。我的想法是创建一个' Master Function'只会调用每个UDF并返回正确的代码。这样,在单元格中它看起来就像(例如)= Master()
问题:
我首先将单元格范围放入主函数中,然后将它们作为参数传递给函数(例如)
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
但是,当A1或B1中的值发生变化时,UDF不会更新。我意识到返回值只会在单元格作为参数传递时改变,但我认为我将参数传递给UDF1和UDF2 ??
显然,如果我写:
Function Master(p1 as Range, p2 as Range)
myR1 = UDF1(p1)
myR2 = UDF2(p2)
End Function
它适用于我,但我最终必须将大量参数传递给这个主函数,我能做到,但我想知道是否还有另一种方法?
注意 - 如果可能的话,我想避免使用Application.Volatile。
就像我说的那样,这是我的第一篇文章,所以我希望我遵守所有的论坛规则等等。我也希望我很清楚!
感谢。