在“全部更新”期间Excel2013“无法打开数据透视表源文件”

我有一个老的臃肿的Excel工作簿,我试图剥离。 在我将所有外部和计算机内部数据源replace为链接到SQL数据库查询的表后,每次我执行Update All ,Excel始终抱怨“Cannot open PivotTable source file xxxxxx[yyyy]|zzzz”

我几乎查看了每一张表,但没有find任何引用有问题的外部Excel文件。 有没有什么办法来定位哪个单元格,至less在哪个表单中,这个问题是可以旋转的?

看起来像caching的数据不再被引用。 (见PS2)有没有办法清除这些caching的条目,而无需手动编辑XML?

谢谢。

PS1:我已经尝试了VBA的方式检查ActiveWB.LinkSource(1)它没有工作,它给了我一个工作表,我已经知道一个单元格中引用。 错误警报中提到的工作表未列出。

PS2:我把文件保存到xlsx解压后的内部XML中,一个简单的grep给了我

 $ grep '20160229-9' -r . ./xl/pivotCache/_rels/pivotCacheDefinition1.xml.rels: <Relationships xmlns="http://schemas.../relationships"> <Relationship Id="rId2" Type="http://schemas.../externalLinkPath" Target="OrderList20160229-9.xlsb" TargetMode="External"/> <Relationship Id="rId1" Type="http://schemas...relationships/pivotCacheRecords" Target="pivotCacheRecords1.xml"/> </Relationships> 

但是PivotTable1的数据源已经被一个SQL查询pipe道表并排replace在同一张表上。

检查引用的pivotCacheRecords1.xml,我得到了源表的非常旧的副本(新的基于SQL查询的表格有不同的格式,我无法在Excel中的任何地方find这些数据中的项目)。 它不再有效了。 嗯,这是一个错误?

为了摆脱丢失的引用来源不再存在数据透视表。

  • 将其保存为xlsx。 用7z或任何其他档案pipe理员打开。
  • 解压缩文件夹xl\pivotCache\_rels\ &检查xml的外观是否包含对有问题的外部源文件的引用。
  • 从存档pipe理器中删除xml并保存生成的xlsx。
  • Excel中打开xlsx并再次保存,Excel会抱怨缺less的东西,并修复文件。

使用数据库链接表作为源时。 考虑PivotTableOptions>Data>Save Source data with file禁用PivotTableOptions>Data>Save Source data with file

完成