这是Excel 2007以下版本中存在的一个非常讨厌的错误。Microsoft可能不会在Excel 2010中修复它。
若要查看此错误的工作原理,请首先下载BugReport和BugData工作簿并将它们保存在一个文件夹中。
现在打开BugData.xlsx在Excel中,然后打开BugReport.xlsx。当您按F9键时,BugReport工作簿显示Foo总数为1000。到目前为止,还不错。
关闭两个工作簿。现在打开BugReport.xlsx,然后打开BugData.xlsx。如果将计算模式设置为自动,则会看到Foo Total等于#N / A。如果该值仍然是1000,请按F9键重新计算您的工作区以查看#N / A结果。
这似乎是该错误的逻辑:
当报表工作簿中的Excel范围名称引用数据库工作簿中的表单作用域名称时,如果先打开报表工作簿,然后再打开数据库工作簿,则Excel会删除报表工作簿在数据库工作簿中引用的所有表单作用域名称。
因此,这里有多种方法可以解决此问题:
1.使用Excel 2003,它没有此错误。
2.在Excel 2007中,打开所有数据库工作簿,然后再打开报表工作簿。如果您忘记了此步骤并遇到此问题,请关闭两个工作簿,不要保存。然后,首先打开数据库工作簿。
3.不要在数据库工作簿中使用工作表范围的名称。
您可能想知道为什么首先使用这些范围名称。如果是这样,请看一看“ 设置范围名称以将报表连接到Excel数据库”,第1部分,我将解释为什么这些名称如此有价值。