2017-03-16 84 views
3

我有宏的Excel 2010模板文件,其中包含下面的代碼:保存Excel工作簿的副本沒有宏觀

ActiveWorkbook.SaveAs Filename:= _ 
    newname, FileFormat:= _ 
    51, CreateBackup:=False 

這會保存當前工作簿作爲非宏啓用工作簿,但後來我顯然不能運行我需要的其餘宏。

我試圖用

ActiveWorkbook.SaveCopyAs Filename:= _ 
    newname, FileFormat:= _ 
    51, CreateBackup:=False 

這就產生了一個語法錯誤。我的目標是用新名稱保存副本,以便模板文件保持不變並且可以每天運行。

+0

如果你需要宏,你爲什麼要把它保存爲非宏的workook?這根本沒有意義。另外,SaveAs確實保存了原始模板文件仍然保留的副本。 –

+0

宏的下一部分將採用新的工作簿並通過電子郵件發送給特定的郵件列表。如果它保存爲非宏啓用的工作簿,則該部分將不會運行。 – mbald23

+0

這不會以這種方式工作。你需要一個幫手工作簿來解決這個問題。可以說你有工作簿A有宏。該工作簿A將打開您的模板B並將其保存爲B副本(不含宏),然後通過電子郵件發送B副本。這會工作。 –

回答

2

試試這個:

Dim wMacro As Workbook  'workbook you want to save 

    wMacro.Sheets(Array("all sheets name")).Select 
    wMacro.Sheets(Array("all sheets name")).Copy 
    ActiveWorkbook.SaveAs Filename:= "filename.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 

它會創建一個拷貝和保存。

+0

謝謝!我認爲這有效! – mbald23

相關問題