我想将此工作簿重命名为“版本2”,但是当我重命名工作簿时,所有透视表都会引用“版本1”数据。我希望透视表引用“版本2”的数据。
我尝试过多种操作设置的组合,但我无法找到一种组合设置,可以自动更改透视表源引用为新命名的“版本2”。
我知道可以编写VBA脚本来解决此问题,但我想知道是否有非VBA解决方案。
我曾经遇到过这个问题(在Excel 2013中使用)。在简单复制或重命名文件后,Excel开始抱怨安全性(外部数据源),我无法刷新数据透视表(出现“无法打开数据透视表源文件xxx”的消息,其中xxx是旧文件名)。
1)如何修复破损的工作簿:
激活数据透视表(将光标放置在内部),以便显示“PIVOTTABLE TOOLS”选项卡。单击“分析”并点击更改数据源按钮。将当前位置放在文本框内(不要使用箭头键!)并删除文件名,包括周围的[]字符。刷新数据透视表。 对工作簿中的每个数据透视表都执行此操作。 完成。
2)如何彻底摆脱这个讨厌的问题:
我打开了原始/修复的工作簿。激活“PIVOTTABLE TOOLS \ ANALYZE”选项卡。单击“选项”按钮(在我的Excel中为选项卡左侧),切换到“数据”选项卡,然后取消选中“将源数据与文件一起保存”。忽略警告(只需单击“确定”即可)。现在我可以随意复制/重命名文件,没有任何问题...
3)解决方法(为了安全起见)-永远不要在Windows资源管理器或其他文件管理器中复制工作簿,而是使用Excel中的另存为功能-只需打开要复制的工作簿并使用另存为即可。
在兼容性检查器弹出窗口上点击继续
在弹出窗口上点击YES,询问是否重新计算所有公式,因为使用了早期版本的Excel。
如果您有多个数据透视表,则可能需要在此之后重新制作一些数据源。保存并另存为后,它就可以工作了。它将数据区域保留为数据透视表的源。
阅读以下帖子后,我实施了提到的VBA解决方案。 https://social.technet.microsoft.com/Forums/office/en-US/43bf5110-dfad-40e5-a71c-e9736da6fbc2/data-source-path-in-pivot-table-changes-to-absolute-on-its-own?forum=excel
VBA代码如下:
Sub Update_PivotTables_Source()
Dim currWS As Worksheet
Dim currPT As PivotTable
On Error Resume Next
For Each currWS In Application.Worksheets
For Each currPT In currWS.PivotTables
currPT.SourceData = Mid(currPT.SourceData, InStr(1,currPT.SourceData, "!") + 1)
Next currPT
Next currWS
End Sub
在帖子中提到的所有非VBA解决方案对我都不起作用。
我在这个主题中没有看到任何真正简单的解决方法,所以我在发帖。这种方法似乎对我有用。
在Windows资源管理器中,右键单击文件并选择复制。然后将其粘贴到同一文件夹中。一个新文件将被创建为“filename COPY”。然后可以在那里重新编辑文件名(例如使用新日期)。然后您可以更新任何数据表,数据透视表将引用该文档内部的那些表而不是旧文件。
谢天谢地,这起作用了!
希望能帮助其他人!
菲尔
转到源选项卡/表格,点击“表格工具”中的“设计”,在调整大小表格上方左上角为其命名,例如“data”。然后进入您的数据透视表-分析-更改数据源,并键入您刚刚给该表命名的名称,即我们的情况下是“data”,并确认。关键是,您的数据透视表仅引用表名称而不包括文件名。对于所有其他数据透视表重复此操作,现在您的数据透视表应该会更新,无论您的文件名是什么。
我认为我可能已经找到了解决方案。这是对我有用的方法:
完成所有这些步骤后,问题没有再次出现。我能够自由地使用“另存为”或在Windows资源管理器中复制此工作簿。
我找到了另一个方法!!!