首页 > 解决方案 > Excel VBA 仅从自定义函数设置默认值一次

问题描述

我想将单元格的默认值设置为自定义函数的结果。

一旦单元格具有它的价值,它就永远不会改变。

我怎么能:

重新创建问题 - 设置一堆单元格=NOW()然后等待片刻并执行不同的单元格,您会注意到所有单元格都更新到现在,我希望我的函数只运行一次。

感激地收到所有输入

标签: excelvba

解决方案


不太确定您的确切目标,但您可以尝试将其放在相关的工作表代码窗格中:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub

    If InStr(Target.Formula, "MyFunc") > 0 Then ' change "MyFunc" tou your actual function name
        Application.EnableEvents = False
        Application.Calculation = XlCalculation.xlCalculationManual
        Target.Value = Target.Value
        Application.EnableEvents = True
        Application.Calculation = XlCalculation.xlCalculationAutomatic
    End If
End Sub

推荐阅读