簡體   English   中英

運行時錯誤“1004”:對象“_Workbook”的方法“SaveAs”失敗

[英]Run-time error '1004': Method 'SaveAs' of object'_Workbook' failed

用戶有一個 Excel 電子表格。 為了保存它,他們按下一個運行以下 VBA 代碼的按鈕。

該代碼嘗試將 Excel 電子表格保存到網絡位置,用今天的日期修改文件名。

代碼將間歇性地失敗

“運行時錯誤'1004':對象'_Workbook'的方法'SaveAs'失敗”。

腳本是:

Public Sub Copy_Save_R2()
    Dim wbNew As Workbook
    Dim fDate As Date

    fDate = Worksheets("Update").Range("D3").Value

    Set wbNew = ActiveWorkbook

    With wbNew
        ActiveWorkbook.SaveAs Filename:="Q:\R2 Portfolio Prints\#Archive - R2 Portfolio\" & "R2 Portfolio - CEC A " & Format(fDate, "mm-dd-yyyy")
    End With

    Sheets("Update").Activate
End Sub

正如Hugo所說,映射驅動器可能是一個問題。 我更喜歡使用完整的UNC路徑(\\\\ Thismachine \\ ...),以防工作簿在未設置映射驅動器的計算機上使用。

我以為缺少擴展名可能是問題所在,但我只是在Excel 2013中對其進行了測試,然后它自動將.xlsx添加到文件名中。

該問題可能是由於 wbNew參考引起的。 這是完全不必要的,不應與 ActiveWorkbook結合使用 基本上,您應該具有對工作簿的引用,或使用預定義的ActiveWorkbook引用。 我還建議改用ThisWorkbook ,因為用戶可能在代碼運行時單擊另一本書。

Public Sub Copy_Save_R2()
    Dim wbNew As Workbook
    Dim fDate As Date

    fDate = Worksheets("Update").Range("D3").Value

    Application.DisplayAlerts = False
    ThisWorkbook.SaveAs Filename:="Q:\R2 Portfolio Prints\#Archive - R2 Portfolio\R2 Portfolio - CEC A " & Format(fDate, "mm-dd-yyyy") & ".xlsx"
    Application.DisplayAlerts = True

    ThisWorkbook.Sheets("Update").Activate
End Sub

編輯:添加了Application.DisplayAlerts命令以防止出現任何“保存”彈出窗口,例如使用.xlsx而不是.xlsm並覆蓋現有副本。

編輯2018-08-11:添加了轉義反斜杠以修復UNC路徑顯示。 向與With語句有關的不正確語句中添加了刪除線(請參見下面的注釋)。 基本上,因為WithEnd With之間沒有任何內容End With開頭. ,該語句根本不執行任何操作。

這對我有用。 確保您的工作簿沒有共享。 我猜“共享​​”工作簿有局限性。

在這里看到了這個: https : //www.ozgrid.com/forum/forum/help-forums/excel-general/27843-save-xls-as-txt

在“審閱”選項卡中,單擊“共享工作簿”,並確保未選中 “允許多個用戶同時進行更改。這允許工作簿合並”。

我也在尋找導致此錯誤的原因,然后記得我正在使用已恢復的電子表格版本。 一旦我手動保存了恢復的文件並重新打開它,保存工作簿的vba代碼就沒有問題了。

對我來說也是一樣,我在保存之前添加了一個命令,

像這樣的波紋管,他們...工作了(我也使用application.display = false)


 On Error Resume Next Kill TargetFullname On Error GoTo 0 wb.SaveCopyAs TargetFullname 


將具有動態文件名的工作簿保存到網絡位置時出現相同的錯誤消息。 保存階段突然停止工作。 錯誤 1004 工作簿另存為方法失敗。

一段時間后意識到宏保存 output 的位置已更改,並且團隊已調整宏的腳本以反映新的網絡地址。

雖然新的網絡地址是准確的,但它太長了......我縮短了文件夾名稱,以及文件名和賓果游戲......正在再次保存工作簿,沒有錯誤消息。

暫無
暫無

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

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