ThisWorkbook.RefreshAll引用以前的文件名

时间:2019-02-26 18:22:38

标签: excel vba

我正在最后确定该宏,因此我将文件名从“ Tool_ 测试 .xlsm”更改为“ Tool_ 最终 .xlsm”。

然后我注意到发生了一件奇怪的事情。每个具有以下代码的模块:

Thisworkbook.RefreshAll

打开一个对话框“很抱歉,我们找不到'... 文件路径 ... \ Tool_ 测试 .xlsm。”这是旧的文件路径/名称。

其中一个模块完整如下:

Sub Clear_All()

If MsgBox("Erase all the data imported?", vbYesNo) = vbNo Then Exit Sub

Sheets("Doc. Currency").Range("C135:N200").ClearContents
Sheets("Auto19").Range("A3:H531").ClearContents
Sheets("F08").Range("A2:E201").ClearContents

ThisWorkbook.RefreshAll

End Sub

仅此而已。为什么它一直引用旧文件? “这本工作簿。”在任何地方都能正常工作,包括在我测试此模块时。似乎是“刷新”是导致问题的原因,但我似乎无法弄清原因。

1 个答案:

答案 0 :(得分:1)

更新:

问题不是代码。

问题在于,即使文件名更改,数据透视表仍保留其旧引用。解决方案是选择数据透视>分析>更改数据源>重新分配范围。

如果您打算经常更改文件名,我想最好是创建一个宏来重现数据透视表或手动更新范围引用。

请考虑解决此问题!并感谢您的评论!