在很大文件上使用Excel 2007时遇到问题。它恢复了两次。我决定先将其保存在本地,然后再将其重新保存到服务器上的常规位置。 这样做时,我注意到实际上我的250个左右数据透视表的源数据都已被修改:前缀“ X”驱动器已被自动替换为“ C”。
请注意,每个数据透视表都有其自己的源数据(链接到文件),该数据必然不同于其他数据透视表的源数据。基本上,每周有1个支点。
因此,我需要的很简单:替换以下String: “C:\” 通过这个: “ X:\”
手动,这是可行的,但是每次刷新数据透视表时,这确实要花费时间。...必须这样做250次。...
感谢您的帮助
答案 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)
我建议一个简单的三步过程。
如果A1包含c:\xxxxx\xx\xx\x
,则公式为="X:\"&MID(A1,4,1000)
如果这是表格(不是范围),则公式将自动复制
答案 2 :(得分:0)
好的,因此,如果有250个源(作为表格或范围),则必须在此处进行处理。与枢轴无关。
如果需要更新源数据,请使用250个单独的“数据集”,为什么不仅仅进行“查找并替换”呢?如果我理解正确,那么您只是在“修复”源数据。
如果在对话框中选择正确的参数,找到“ C:\”并替换为“ X:\”将更改每个工作表上所有单元格中的所有内容。
主页选项卡>编辑>查找和替换 在对话框中,单击“选项”以获取更多选项 对于“内部”选项,选择“工作簿”
查找内容:C:\ 替换为:X:\
然后“全部替换”。
应该花大约1分钟的时间进行整理。