我正在尝试这个:
C9公式:=-40+C9
我希望能够在 C9 中输入一些不会覆盖公式的值并在该单元格中得到结果。例如:
如果我在 C9 中输入值 140,单元格将显示 100,因为公式为 =-40+C9
那可能吗?
答案1
您可以编写一个用于单元格更改的宏http://support.microsoft.com/kb/213612 阅读这个主题你可能会觉得有用:https://stackoverflow.com/questions/409434/automatically-execute-an-excel-macro-on-a-cell-change
这是工作示例(刚刚在我的计算机上尝试过)
Private Sub Worksheet_Change(ByVal Target As Range)
Set KeyCells = Range("A1:C10")
Set isect = Application.Intersect(KeyCells, Range(Target.Address))
If Not isect Is Nothing Then
Application.EnableEvents = False
isect.Value = isect.Value - 40
Application.EnableEvents = True
End If
End Sub
答案2
简短回答:不。
按照你所说的做会导致所谓的循环引用。
答案3
你不应该这么做!
使得 C9 = -40 + C9 简单来说就是递归。这意味着,如果允许单元格求值,它应该永远从自身中减去 -40。另外,我不建议使用宏。您将永远无法进行更改或恢复到以前的值。比如说,如果您想更改一个单元格,其他单元格也会受到影响。
我的建议是为此额外添加一列。比如在 C9 中写下你的值,然后在 D9 中计算。然后,你可以去隐藏C 列使其不可打印。这种方式非常可靠和安全。实际上,电子表格本来就是这样工作的。