问题描述
我有一个自己编写的自定义公式,但计算答案需要一段时间,并且由于 Excel 会更新函数值(当您激活工作簿或重新打开工作簿等时),所以我无法让它重新运行该函数。
我尝试调用子进程来复制单元格并粘贴值(用公式结果替换公式),但它返回了=#VALUE!
。可能与循环引用有关...
问题
有没有办法用用户定义公式中的值覆盖单元格中的公式?
答案1
无法从 UDF 中覆盖任何单元格,它只能返回一个值。
您可以使用 Worksheet_Change 函数来解决这个问题......
在表格中:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("A1"), Target) Is Nothing Then
'do nothing - not worried about anything not in A1
Else
Range("A1").Value = Range("A1").Value
End If
End Sub
无论您在 A1 中输入什么公式,在将此代码放入的工作表中,它都将转换为值,并且公式将被删除。
答案2
- 选择单元格
- 右键单击 > 复制(或 [CTRL]+[c])
- 右键单击 > 选择性粘贴 > 粘贴值
这应该用结果数字/值替换公式。