Excel使您可以控制何时重新计算工作表。通常,每当您更改单元格中的某些内容时,Excel都会重新计算。如果您正在使用包含大量公式的非常大的工作表,则可能需要关闭自动重新计算功能。您可以使用“选项”对话框的“计算”选项卡上的控件关闭自动重新计算。

您的宏还可以强制Excel重新计算工作表。如果您打开了自动重新计算功能,则您的宏在工作表中所做的任何更改都将强制Excel重新计算。如果您关闭了自动重新计算功能,则可以使用Calculate方法重新计算工作表:

ActiveSheet.Calculate

当然,如果执行重新计算需要花费相当长的时间,则可能需要检查一下是否需要重新计算,然后才真正强制执行一次重新计算。似乎没有标记,您可以直接检查以查看是否需要重新计算。最接近的事情是检查Workbook对象的Saved属性。此属性本质上充当整个工作簿的“脏标志”。如果工作簿中有未保存的更改,则Saved属性为False;否则为false。如果所有内容都保存,则为True。

如何帮助您确定是否需要重新计算?

请记住,仅当工作表中有更改时才需要进行计算。更改工作表中的任何内容也会将工作簿的Saved属性设置为False。这样,您可以在进行重新计算之前检查Saved属性,如下所示:

If Not ActiveWorkbook.Saved Then     ActiveSheet.Calculate End If

当然,这种方法只有一个问题-如果实际保存了工作簿,则Saved属性仅设置为True。这意味着您可以真正地进行多次重新计算,除非您将保存和重新计算结合在一起,如下所示:

If Not ActiveWorkbook.Saved Then     ActiveSheet.Calculate     ActiveWorkbook.Save End If

以这种方式解决此问题的智慧取决于您的特定情况的性质。如果保存工作簿所花的时间比简单地重新计算所花的时间长,则此方法将行不通。但是,如果重新计算花费的时间更长(在某些类型的操作中很有可能),则此方法可能会很好用。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2323)适用于Microsoft Excel 97、2000、2002和2003。您可以在以下位置找到适用于Excel功能区界面的本技巧的版本(Excel 2007及更高版本):