VBA执行SaveCopyAs保存文件后打开报1004错误如何解决?
问题修复方案
错误根因
你在调用Workbooks.Open时拼接的路径没有补充.xlsx后缀,和你调用SaveCopyAs时保存的实际文件后缀不匹配,Excel无法识别文件格式,因此抛出1004错误。
修复方法
方案1:补全打开路径的后缀
直接在打开文件的路径末尾补全和保存时一致的.xlsx后缀即可:
ActiveWorkbook.SaveCopyAs "C:\Users\" & PCusername & "\Desktop\Folder\" & ActiveName & "_NEW.xlsx" Workbooks.Open ("C:\Users\" & PCusername & "\Desktop\Folder\" & ActiveName & "_NEW.xlsx")
方案2:复用保存路径变量(更推荐)
将保存路径提前存入变量,打开时直接复用变量,避免两次拼接出现不一致的问题:
Dim fullSavePath As String fullSavePath = "C:\Users\" & PCusername & "\Desktop\Folder\" & ActiveName & "_NEW.xlsx" ' 保存副本 ActiveWorkbook.SaveCopyAs fullSavePath ' 打开副本 Workbooks.Open fullSavePath
注意事项
- 如果你的工作簿包含宏代码,需要将保存和打开的后缀统一修改为
.xlsm - 调试路径相关问题时,可以先通过
Debug.Print 路径变量输出拼接后的完整路径,确认路径和文件名是否符合预期
内容的提问来源于stack exchange,提问作者Mel
相关产品推荐
相关产品推荐

