琳达问是否有一种方法只能计算活动工作簿。

当Excel执行重新计算时,它将重新计算她所有打开的工作簿,如果它们是非常大的工作簿,则有时可能需要十五分钟才能重新计算。如果她能够限制重新计算的内容,那么该过程显然将运行得更快。

不幸的是,没有直接方法可以只计算特定的工作簿。但是,如果需要,您可以仅计算活动工作表。首先,按照以下步骤将重新计算模式设置为手动:

。显示“ Excel选项”对话框。 (在Excel 2007中,单击Office按钮,然后单击Excel选项。在Excel 2010和更高版本中,显示功能区的“文件”选项卡,然后单击“选项”。)

。单击对话框左侧的“公式”区域。 (请参见图1。)

。在对话框的“计算选项”部分中,确保已选中“手动”单选按钮。

。单击确定。

现在,只有当您按F9时,才重新计算工作簿(实际上是所有打开的工作簿)。如果只想重新计算当前工作表,请按Shift + F9。

Excel还提供了允许您执行以下三项操作的宏功能:计算所有打开的工作簿,计算工作簿中的特定工作表或计算工作表中指定单元格的范围。有了这些知识,您可以创建一个宏,该宏将遍历工作簿中的所有工作表并重新计算每个工作表。

下面的宏将计算模式设置为手动(因此其他工作簿将不会计算),然后循环遍历并计算活动工作簿的每一张纸。

Sub CalcBook()

Dim wks As Worksheet     Application.Calculation = xlManual     For Each wks In ActiveWorkbook.Worksheets         wks.Calculate     Next     Set wks = Nothing End Sub

如果您认为您可能想在不同时间计算工作簿的不同部分,则可以扩展该宏,以便它可以执行您想要的任何类型的计算:

Sub CalcWhat()

Dim iAnsure As Integer

Application.Calculation = xlManual     iAnsure = InputBox("1 = Calculate A Used Range" _       & vbCrLf & _       "2 = Calculate This Worksheet" _       & vbCrLf & _       "3 = Calculate This Workbook" _       & vbCrLf & _       "4 = Calculate All Workbooks in Memory" _       & vbCrLf & vbCrLf & _       "Input Your Selection Number From Above" _       & vbCrLf & "Then Click OK", _       "Calculate What?", "Input Number Please", _       5000, 5000)



Select Case iAnsure         Case 1 'Range Only             Selection.Calculate         Case 2 'Worksheet Only             ActiveSheet.Calculate         Case 3 'Workbook Only             For Each wks In ActiveWorkbook.Worksheets                 wks.Calculate             Next         Case 4 'All Open Workbooks             Application.CalculateFull         End     End Select End Sub

该宏显示一个输入框,提示用户需要哪种重新计算类型。当用户输入1到4之间的数字时,将执行所需的重新计算类型。

注意:

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

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

本技巧(6752)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:

链接:/ excel-Calculating_Only_the_Active_Workbook [仅计算活动工作簿]。