2017-08-02 545 views
0

我有一個帶有.xlsb擴展名的Excel文件,並使用它的宏根據內容生成其他幾個Excel工作表。這些宏以一種方式工作,即他們更改原始Excel文件,然後使用SaveCopyAs方法保存生成的Excel工作表。Excel VBA:SaveCopyAs具有不同的文件擴展名

生成的Excel工作表應以.xlsx擴展名和格式保存。

使用ActiveWorkbook.SaveCopyAs「C:\ TEMP \ XXXX.XLSX」方法不適用於我,因爲雖然它確實更改了擴展名,但它不會更改文件格式,因此當用戶打開生成的Excel文件時,會收到警告消息(類似「文件擴展名和格式不匹配」​​)。 SaveCopyAs方法沒有任何其他參數。

如何將原始.xlsb文件的副本保存爲擴展名和格式以更改爲.xlsx?

注意:Workbook.SaveAs方法確實有一個fileformat選項,不知道這是否有助於/相關。

+1

是否有任何理由將您的文件複製一份?您是否可以不只是創建新的工作簿,而是直接寫入新工作簿中的工作表或複製新工作簿中的內容? – Zac

+0

除了我真的是VBA的新手之外,沒有什麼特別的理由。如果一旦生成了內容,只需創建一個新的Excel表格,將原始文件中的一個標籤複製到這個新文件中,然後將新文件保存在正確的文件名下,就完全可行。你認爲你可以給我一個示例代碼嗎? – Istvanb

+0

如果您可以提供您的代碼,我們可以提供幫助 – Zac

回答

0

基於Zac的提示,在我的情況下,它是一個更好的解決方案,將帶有相關更改的選項卡複製到新創建的excel文件中,然後使用新文件名保存。

ThisWorkbook.Sheets("myTab").Copy 
ActiveWorkbook.SaveAs Filename:="c:\temp\xyz.xlsx", FileFormat:=51 
ActiveWorkbook.Close 

其實,這是我作爲終端用戶很多更好的解決方案確實需要產生的標籤,而不是宏或原單的任何其他數據的Excel文件。

相關問題