函数返回值未更新

时间:2018-03-08 20:55:39

标签: excel vba excel-vba

我有一个包含多个工作表的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方法,但似乎没有帮助。

有什么想法吗?

1 个答案:

答案 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

相关问题