更改文件名后的Excel数据透视表数据源,指的是以前的文件名

时间:2015-04-09 17:25:44

标签: excel datasource rename pivot-table

我有一个excel工作簿,其中有几个数据透视表,指的是工作簿中包含的数据。数据透视表引用的所有数据都包含在此工作簿中(“版本1”)。

我想将此工作簿重命名为“版本2”,但是当我重命名工作簿时,所有数据透视表都会引用“版本1”数据。我希望数据透视表能够引用“版本2”中的数据。

我尝试了几种选项设置组合,但是我找不到自动将数据透视表源引用更改为新命名的“版本2”的设置组合。

据我所知,可以编写一个vba脚本来解决这个问题,但我想知道是否存在非vba解决方案。

8 个答案:

答案 0 :(得分:1)

我遇到了这个问题(使用Excel 2013)。在简单文件复制\重命名并打开复制\重命名文件后,excel开始抱怨安全性(外部数据源),我无法刷新数据透视表(消息“无法打开数据透视表源文件xxx”,其中xxx是旧文件名)

1)如何修复损坏的工作簿:

激活数据透视表(将光标置于其中),以便显示“PIVOTTABLE TOOLS”功能区。单击ANALYZE和更改数据源按钮。将carrent放入文本框(不要使用箭头键!)并删除包含周围[]字符的文件名。刷新数据透视表。 对工作簿中的每个数据透视表执行此操作。 完成。

2)如何摆脱这个讨厌的问题:

我打开原始\固定工作簿。激活'PIVOTTABLE TOOLS \ ANALYZE'功能区。单击“选项”按钮(我的Excel中功能区的左侧),切换到“数据”选项卡,然后取消选中“使用文件保存源数据”。忽略警告(只是确定)。现在我可以按照自己的意愿复制\ rename文件,并且完全没有问题......

3)解决方法(只是为了安全) - 永远不要在Windows资源管理器或其他文件管理器中复制工作簿,而是在Excel中使用另存为功能 - 只需打开要复制的工作簿即可并使用另存为

答案 1 :(得分:1)

通过以下文章阅读,我实现了上述VBA解决方案。 enter image description here

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解决方案对我来说都不起作用。

答案 2 :(得分:1)

问题是文件格式.xlsx。

我解决了以下问题:

  1. 将文件保存在.xls中,但不能与.xlsx文件相同的名称
  2. 点击兼容性检查器上的继续弹出

  3. 点击弹出窗口上的YES,询问是否因为Excell的早期版本而重新计算所有公式。

  4. 如果你有多个支点,那么必须重做一些数据源。保存并保存后,它可以工作。它将数据区域保留为数据透视表的源。

  5. 一旦你切换到.xlsx,问题就会回来。

答案 3 :(得分:0)

这是解决方案:

  

我没有看到任何真正的解决方案在这个线程上很简单   我发帖了。这种方法似乎对我有用。

     

在Windows资源管理器中,右键单击该文件并选择复制。然后   粘贴到同一文件夹中。新文件将创建为'filename   复制'。然后,您可以根据需要重新编辑文件名(即。   新的约会)。然后,您可以更新您拥有的任何数据表   并且数据透视表将引用其内部的那些表   文件而不是旧文件。

     

谢天谢地,这很有效!

     

希望它可以帮助其他人!

     

菲尔

来源:https://social.technet.microsoft.com/Forums/exchange/en-US/43bf5110-dfad-40e5-a71c-e9736da6fbc2/data-source-path-in-pivot-table-changes-to-absolute-on-its-own?forum=excel&prof=required

答案 4 :(得分:0)

我想我可能找到了解决方案。这对我有用:

  1. 使用损坏的路径
  2. 打开文件
  3. 打开已损坏的工作簿引用的文件
  4. 然后删除数据透视表应引用的数据表(在损坏的工作簿中)
  5. 将损坏的数据透视表引用的文件中的数据表移动(不要复制)到损坏的文件中。现在,您的数据透视表应仅引用工作簿中的工作表。
  6. 在以前损坏的文件中创建一个空白表
  7. 将除之前创建的空白页之外的所有工作表移动(不复制)到新工作簿。
  8. 在本地保存到您的计算机。
  9. 上传到您想要的位置。
  10. 执行所有这些步骤后,问题仍未返回。我可以使用“另存为”自由移动此工作簿或在Windows资源管理器中复制。

答案 5 :(得分:0)

点击分析 - >更改数据源 - >表/范围:如果文件已被移动,则更新Excel文件名和/或文件夹源。

这应解决问题

答案 6 :(得分:0)

转到您的源标签/表格,点击表格工具中的设计,然后在调整大小表格上方的左上角为其指定唯一的表格名称,例如“数据”。然后单击进入您的数据透视表分析更改数据源,并输入您刚刚为该表指定的名称(在我们的示例中为“数据”)并确认。关键是您的数据透视表仅引用表名,而不引用文件名。对所有其他枢轴重复上述操作,现在不管您的文件名是什么,枢轴都应该更新。

答案 7 :(得分:0)

我找到了另一个!!

  1. 将XLS或XLSM文件解压缩到目录中
  2. 找到XL / Connections.XML文件,最好使用记事本++打开
  3. 在“ 连接”节点中,查找已删除 =“ 1”。将其更改为“ 0”。
  4. 注意名称字段的内容。
  5. 保存xml文件。
  6. 将目录内容(而非目录)压缩到AnyNewFileName.XLSM(或XLS)中
  7. 打开此新电子表格
  8. 查找数据/查询和连接,然后从步骤4中查找名称
  9. 删除该查询或连接。