替换250个数据透视表的源数据中的字母

时间:2018-07-06 02:03:03

标签: excel replace datasource

在很大文件上使用Excel 2007时遇到问题。它恢复了两次。我决定先将其保存在本地,然后再将其重新保存到服务器上的常规位置。 这样做时,我注意到实际上我的250个左右数据透视表的源数据都已被修改:前缀“ X”驱动器已被自动替换为“ C”。

请注意,每个数据透视表都有其自己的源数据(链接到文件),该数据必然不同于其他数据透视表的源数据。基本上,每周有1个支点。

因此,我需要的很简单:替换以下String: “C:\” 通过这个: “ X:\”

手动,这是可行的,但是每次刷新数据透视表时,这确实要花费时间。...必须这样做250次。...

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

到目前为止,我已经获得了以下代码:

Sub ChangePath()

将UnPCache设置为PivotCache Dim memoCalcul作为XlCalculation

Const OldPath As String = "C:\"
Const NewPath As String = "X:\"

memoCalcul = Application.Calculation

Application.Calculation = xlManual

 For Each UnPCache In ThisWorkbook.PivotCaches
          UnPCache.SourceData = Replace(UnPCache.SourceData, OldPath, NewPath, compare:=vbTextCompare)
Next

Application.Calculation = memoCalcul
End Sub

实际上返回一个: 运行时错误1004,应用程序定义或对象定义的错误

始终在以下行:

UnPCache.SourceData = Replace(UnPCache.SourceData, OldPath, NewPath, compare:=vbTextCompare)

感谢您的帮助

答案 1 :(得分:0)

我建议一个简单的三步过程。

  1. 添加新列并在其中添加公式。
  2. 将数字复制并粘贴回原始文件。
  3. 删除原始列

如果A1包含c:\xxxxx\xx\xx\x,则公式为="X:\"&MID(A1,4,1000)

如果这是表格(不是范围),则公式将自动复制

答案 2 :(得分:0)

好的,因此,如果有250个源(作为表格或范围),则必须在此处进行处理。与枢轴无关。

如果需要更新源数据,请使用250个单独的“数据集”,为什么不仅仅进行“查找并替换”呢?如果我理解正确,那么您只是在“修复”源数据。

如果在对话框中选择正确的参数,找到“ C:\”并替换为“ X:\”将更改每个工作表上所有单元格中的所有内容。

主页选项卡>编辑>查找和替换 在对话框中,单击“选项”以获取更多选项 对于“内部”选项,选择“工作簿”

查找内容:C:\ 替换为:X:\

然后“全部替换”。

应该花大约1分钟的时间进行整理。