当公式直接或间接引用存储该公式的单元格时,就会发生循环引用。例如,如果B3包含公式= B2 + B3,则B3包含循环引用。

通常,循环引用表示公式中的错误。但是,在某些情况下需要使用循环引用。

Excel允许您在工作表中包括循环引用,但是对它们可能有些挑剔。

在大多数情况下,如果启用了“启用迭代计算”控件,则Excel对循环引用非常宽容。 (显示“ Excel选项”对话框,然后单击对话框左侧的“公式”。)如果选中“启用迭代计算”复选框,然后输入一个循环引用,则Excel不会提出抗议。而是使用“ Excel选项”对话框中的设置来控制循环引用重复多少次后再考虑完成。

似乎“启用迭代计算”复选框的设置存储为工作簿的一部分,但是当以后将工作簿加载到Excel时,并不总是注意此设置。实际上,如果在打开工作簿之前发生以下任何情况,则将完全忽略该设置:

  • 您可以打开除首次启动Excel时创建的默认工作簿以外的其他任何工作簿。

  • 显示默认工作簿时,您更改“迭代”复选框。

Excel的作用是检查首次打开的任何工作簿的“启用迭代计算”复选框设置。该设置将成为当前使用Excel会话的“默认”。对于在同一会话期间加载的任何其他工作簿,将忽略“启用迭代计算”复选框的已保存设置。

此外,如果系统上定义了“个人”工作簿,则该文件中“启用迭代计算”复选框的设置始终用作默认设置。为什么?因为“个人”工作簿始终是打开的第一个工作簿,并且打开的第一个工作簿总是定义该设置的默认值。

如果您有一个使用循环引用的已保存工作簿,并且清除了“启用迭代计算”复选框(默认或显式),则当您打开包含循环引用的工作簿时,Excel将显示警告。如果您不想看到警告,那么显而易见的解决方案是确保在打开任何其他工作簿之前先打开该工作簿(以便使用其“迭代”设置),或者在打开该工作簿之前显式设置“启用迭代计算”复选框。工作簿。

如果您不想担心打开工作簿的顺序,并且不想始终更改“启用迭代计算”复选框的设置,则可以创建一个宏,以确保已选中“启用迭代计算”复选框。工作簿。如果将宏分配给工作簿的Open事件,则它将在每次打开工作簿时运行,从而确保您不会看到不想看到的警告。宏显示如下:

Private Sub Workbook_Open()

Application.Iteration = True End Sub

如果您有为系统定义的“个人”工作簿,则可以将此宏添加到其中,而不是添加到各个工作簿中。这样,您可以确保始终为每个Excel会话选中“启用迭代计算”复选框。

注意:

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

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

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