excel - Excel VBA 仅从自定义函数设置默认值一次
问题描述
我想将单元格的默认值设置为自定义函数的结果。
一旦单元格具有它的价值,它就永远不会改变。
我怎么能:
测试调用单元格是否有值?从我所看到的情况来看,如果您对其进行测试
Application.Caller.Value
,它会重新评估再次调用该函数的单元格。我试过传入当前值,但它都是循环=myFunc(A1)
的。设置值后立即删除该功能。我试过
Cell.Value = Cell.Value
了,但它只是再次调用该函数。锁定单元格,或者让它
read-only
,添加某种不再计算我的标志。
重新创建问题 - 设置一堆单元格=NOW()
然后等待片刻并执行不同的单元格,您会注意到所有单元格都更新到现在,我希望我的函数只运行一次。
感激地收到所有输入
解决方案
不太确定您的确切目标,但您可以尝试将其放在相关的工作表代码窗格中:
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
推荐阅读
- c# - Numbers distribution
- aws-lambda - 为 lambda 函数设置 Alexa Skill 意图和槽类型
- c# - 销毁 Unity3D GameObject 之前的 Arrayoutofbounds
- ios - 如何为cordova ios应用程序设置背景图标
- go - 嵌入字段是否计入接口
- mongodb - 如何使用聚合框架提取_id的创建日期并将其添加为新字段?
- crystal-reports - 水晶报表 - 活跃员工公式
- html - HTML轮播图像裁剪而不是在移动设备上缩放
- r - 无法在 R 版本 3.5.2 中加载库 svglite
- visual-studio-2017 - 如果我更改项目属性,Visual Studio 不会注意到