【问题标题】:Recalculate sheet excel in VBA when getting numbers from cells with Cells.Value从具有 Cells.Value 的单元格中获取数字时,在 VBA 中重新计算工作表 excel
【发布时间】:2014-10-08 01:45:09
【问题描述】:

这是一个简单的例子来解释我想要做什么:

Function fun(X As Double)

    Worksheets("Sheet1").Activate

    Y = Cells(2, "C").Value

    fun = X + Y

End Function

所以,如果我在 Excel 表中更改 X 的值,fun 的结果将按预期更改,但如果我更改 Y 的值,则不会发生任何事情。我必须再次更改X,这样函数才能获得Y 的新值并计算出正确的值。

有没有办法在这个 VBA 函数中添加代码,以便 fun 的结果会随着 Y 的值的变化而自动更新?

【问题讨论】:

    标签: vba excel auto-update


    【解决方案1】:

    Application.Volatile 作为第一行添加到您的函数中。

    Function fun(X As Double)
        Application.Volatile
        'Worksheets("Sheet1").Activate
        Dim Y As Long
    
        Y = Worksheets("Sheet1").Cells(2, "C").Value
    
        fun = X + Y
    
    End Function
    

    应直接分配给 Y,而不是通过激活工作表。

    【讨论】:

    • 完美运行!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多