我试图弄清楚是否有办法控制细胞水平的计算。以下是我在If语句中基本上要做的事情......我不知道如何使用TheLastValue" " DoThisBigLongCalc"虽然....
Cell A1 =IF(CalculateFlag = True, DoThisBigLongCalc, UseTheLastValueOfBigCalc)
任何帮助将不胜感激!我这样做的原因是我每次点击F9时都会想要计算很多公式,但由于它们的计算时间很长,我还有很多公式。谢谢
答案 0 :(得分:0)
这种方法可能会对您有所帮助,
1)无论您要使用F9
重新计算哪个单元格,请直接在Excel表格中输入公式。即使您将公式计算方法设置为手动,当您按F9
2)对于您不想重新计算的单元格,请通过VBA
输入这些单元格的公式,这样无论何时执行代码,都会计算公式。如果没有,旧值仍将保留在单元格上(UseTheLastValueOfBigCalc)
此代码可以通过worksheet_change
事件触发,该事件可以检测特定单元格上的True/False
并执行相应的操作。如果是真的,只需重新计算公式,如果为假,则忽略。
以下是一个代码段,可检测单元格True
中的A1
并进行相应计算,
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Range("A1") = True Then
Range("B3") = Application.WorksheetFunction.Sum(Range("B1:B2"))
End If
End Sub
此代码对B1
和B2
中的值进行求和,并且只有在B3
True
时才会在A1
中打印
即使更改单元格B1
或B2
中的值,也不会重新计算总和,这意味着除非A1
更改为{{1},否则仍可使用旧值}。
输入true
后,计算公式
希望这有帮助。