不带宏的保存Excel工作簿副本

7

我有一个带有宏的Excel 2010模板文件,其中包含以下代码:

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

这将把当前工作簿保存为非宏启用的工作簿,但是这样我就无法运行我需要的其他宏。

我尝试使用

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

这会导致语法错误。我的目标是使用新名称保存副本,以便模板文件保持不变,并且可以每天运行。

如果你需要宏,为什么要将它保存为非宏启用的工作簿呢?这完全没有意义。而且,SaveAs确实会保存原始模板文件的副本。 - Pᴇʜ
1
宏的下一部分将新工作簿发送邮件到特定收件人列表。如果保存为非宏启用的工作簿,则该部分将不会运行。 - mbald23
这样做不行。你需要一个辅助工作簿来解决这个问题。假设你有一个带有宏的工作簿A。这个工作簿A打开你的模板B,并将其另存为没有宏的B-copy,然后通过电子邮件发送B-copy。这样就可以解决问题了。 - Pᴇʜ
1个回答

4

试一下这个:

    Dim wMacro As Workbook     'workbook you want to save

    wMacro.Sheets(Array("Sheet1", "Sheet2", "etc")).Select
    wMacro.Sheets(Array("Sheet1", "Sheet2", "etc")).Copy

    ActiveWorkbook.SaveAs Filename:= "filename.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

它将创建一个副本并保存。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接