簡體   English   中英

VBA 將當前工作表復制到新工作簿並保存

[英]VBA to copy current sheet to new workbook and save

雖然我對我的 VBA 非常生疏,但我之前已經多次將工作表保存到新的工作簿中。 此代碼失敗,錯誤代碼為“object '_Workbook' 的方法 'SaveAs' failed”

wbSource.Sheets(newFileName).Copy

On Error GoTo NewWorkbookError:
Set wbCleaned = ActiveWorkbook
    
ChDir ProcessedFileStoragePath        
wbCleaned.SaveAs filename:=newFilePath, _
                 FileFormat:=FileStoredAsFormat, CreateBackup:=False

在沒有 ChDir 行的情況下失敗,我添加了該行,因為在錄制用於保存新工作簿的宏時,該代碼行在錄制中。

我注意到的另一件事是 .SaveAs 方法中的“文件名”大小寫,它應該是 Filename: 但是當我以這種方式鍵入它時,編輯器會小寫它。 我在這個名為 filename 的模塊中沒有任何其他變量。

 Const ProcessedFileStoragePath As String = "C:\Users\TD\OneDrive\DataLoaders\FilesForAzureStorage\"
Const FileStoredAsFormat As String = "xlCSVUTF8"

任何幫助表示贊賞,我已經在這方面花費了太多時間。

今天早上我在自己的代碼中遇到了完全相同的問題。 ActiveWorkbook 出於某種原因沒有產生 object 並保持為空。 我通過手動指定工作簿來解決這個問題。

嘗試這個:

wkb.Worksheets(newFileName).Copy
Excel.Workbooks(2).SaveAs newFilePath

解決方案: OPs 問題的解決方案是文件格式枚舉。 它必須是變體變量類型(根據 OP 的評論)。

如果有幫助,我會將我的建議留給其他人。

暫無
暫無

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

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