我有一个包含多个工作表的Excel工作簿,我正在尝试运行测试函数以返回基于来自不同工作表的值更新的单元格值。 这是我的基本函数,它只是从数组中返回一个值:
Function test(t2)
Application.Volatile
Dim costArray As Variant
costArray = Array(Range("W34"), Range("W35"), Range("W36"))
test = costArray(1)
End Function
这正确地返回正确的值,但是当我从不同工作表更新依赖关系单元格值时,返回值设置为0并且我必须手动刷新函数以获取更新的值。正如您所看到的,我尝试使用Application.Volatile方法,但似乎没有帮助。
有什么想法吗?
答案 0 :(得分:2)
试试这样:
Public Function TestMe(ParamArray costArray() As Variant) As Variant
Application.Volatile
TestMe = costArray(1)
End Function
我猜Application.Volatile
仅涉及参数。因此,将三个参数作为范围。
ParamArray
指定过程参数采用指定类型的可选元素数组。 ParamArray只能用于参数列表的最后一个参数。
https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/modifiers/paramarray