Excel - 使用标志来控制单元格级别计算

时间:2017-05-17 20:57:25

标签: excel excel-vba vba

我试图弄清楚是否有办法控制细胞水平的计算。以下是我在If语句中基本上要做的事情......我不知道如何使用TheLastValue" " DoThisBigLongCalc"虽然....

Cell A1 =IF(CalculateFlag = True, DoThisBigLongCalc, UseTheLastValueOfBigCalc)

任何帮助将不胜感激!我这样做的原因是我每次点击F9时都会想要计算很多公式,但由于它们的计算时间很长,我还有很多公式。谢谢

1 个答案:

答案 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

此代码对B1B2中的值进行求和,并且只有在B3

中输入True时才会在A1中打印

enter image description here

即使更改单元格B1B2中的值,也不会重新计算总和,这意味着除非A1更改为{{1},否则仍可使用旧值}。

enter image description here

输入true后,计算公式

enter image description here

希望这有帮助。