【问题标题】:Function Return Value Not Updating函数返回值未更新
【发布时间】:2018-03-08 20:55:38
【问题描述】:

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

有什么想法吗?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    试试这样:

    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

    【讨论】:

    • 解决了!感谢您的快速回答。
    • @RobertS - 欢迎,我已将其编辑为更好的内容 - ParamArray()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多