簡體   English   中英

如何修復wb.SaveAs函數上的錯誤1004

[英]How to fix error 1004 on a wb.SaveAs function

這是我的第一個大型VBA項目。 我正在自動從多個來源提交多個報告。 上周,我完成了實現需要使用的兩個報告的工作,並且wb.SaveAs函數正在運行。 現在,我添加了第三個源,wb.SaveAs不再起作用。

我嘗試引用映射的網絡驅動器,嘗試使用直接引用,並嘗試將路徑放入變量中。 這些都不起作用。 我搜索了該站點和其他站點,但是我發現的類似問題的答案不適用。

'This is only the code for the loading and saving part
Dim wbTime As Workbook
Dim wsTime As Worksheet
Dim wbRP As Workbook
Dim wsRPDic As Worksheet
Dim wbTdB As Workbook
Dim wsTdB As Worksheet
Dim wbMots As Workbook
Dim wsMots As Worksheet


'Setting all the workbooks and worksheets to be used
Set wbTime = Workbooks("Timesheets.xls")
Set wsTime = wbTime.Worksheets("TimeSheets")
Set wbRP = Workbooks.Open("\\BUR-SERV\Data\xxx\xxx\xxx xxx\Calculs-Analyses\Rapport Productivit? Prod 2019.xlsx")
Set wsRPDic = wbRP.Worksheets("Dictionary")
Set wbTdB = Workbooks.Open("\\BUR-SERV\Data\xxx\xxx\xxx xxx\Suivis, Rapport et TdB\Tableau de Bord.xlsx")
Set wsTdB = wbTdB.Worksheets("Tableau de Bord Complet - 2019")
Set wbMots = Workbooks.Open("\\BUR-SERV\Data\xxx\xxx\xxx xxx\Calculs-Analyses\Raw Reports\Rapport de productivit?.xls")
Set wsMots = wbMots.Worksheets("Sheet2")


'Save and close section. This is at the very end of the code and both wb.SaveAs don't work now
wbTime.SaveAs Filename:="\\BUR-SERV\Data\xxx\xxx\xxx xxx\Calculs-Analyses\Raw Reports\Done\Heures_" & Replace(curWeek, "/", "-") & ".xls", FileFormat:="xlExcel8"
wbMots.SaveAs Filename:="\\BUR-SERV\Data\xxx\xxx\xxx xxx\Calculs-Analyses\Raw Reports\Done\Rapport de Productivit?_" & Replace(curWeek, "/", "-") & ".xls", FileFormat:="xlExcel8"
wbRP.Save
wbTdB.Save
wbTime.Close
wbMots.Close
wbRP.Close
wbTdB.Close

我正在嘗試將兩個報告保存在完成的文件夾中,並用報告的星期將其重命名。 相反,我得到了錯誤代碼:1004-由應用程序或對象定義的錯誤

失敗的Workbook.SaveAs調用通常表示路徑或文件名有問題。

SaveAs成員調用與進行該成員調用所需的片段收集分開。

即,將Filename參數表達式放入新的局部變量中:

Dim newFilename As String
newFilename = "\\BUR-SERV\Data\xxx\xxx\xxx xxx\Calculs-Analyses\Raw Reports\Done\Rapport de Productivit?_" & Replace(curWeek, "/", "-") & ".xls"
Debug.Print newFilename
Stop

現在運行它,當執行停止時,您應該會看到為Filename參數傳遞的實際字符串值(Ctrl + G彈出調試/即時窗格)。 看起來像有效的路徑和文件名嗎? 將其復制到剪貼板,返回Excel並按F12 / SaveAs,然后嘗試保存具有該名稱的文件。

您應該會收到一條詳細的錯誤消息,告訴您確切的問題所在。

? 字符高度可疑(在文件名中是非法的),並且\\xxx\\xxx\\xxx占位符看起來像實際路徑可能很深-驗證總長度是否少於255個字符。

我已經通過刪除wb.saveAs中的文件格式聲明解決了該問題。 .xls本身可以提供正確的文件格式。

刪除.xls並保持文件格式不起作用。

保存文件時,我還刪除了curWeek字符串的冗余。 自從更新格式以來,字符串格式已經使用“-”而不是“ /”。 但是,該位對saveAs函數沒有任何干擾。

謝謝您的幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM