保存工作簿 "backup copy" 而不提交对 Excel 的更改?

Save "backup copy" of workbook without committing changes to Excel?

我不确定这是否可能,但也许我遗漏了一些明显的东西。

我想以编程方式在不可见的情况下保存当前状态的工作簿的 "backup" 副本,而不 "committing" 对 Excel 的更改或破坏 撤消 历史记录。

示例场景:

  1. 用户打开 c:\folder1\workbookA.xlsm
  2. 用户对工作簿进行了更改,他们可能不希望提交给
  3. 我的子程序由于计时器或其他事件而开始,并在后台将工作簿的副本另存为 c:\folder2\workbookB.xlsm

要注意的是,这个创建备份副本的操作需要 "invisible" 给用户,这样如果他们以后 Save close discarding changes,结果就和没有创建我的备份副本一样。

这意味着:

据我所知,workbook.SaveAs 总是更新工作簿的名称并清除 "undo" 历史记录,因此如果不保留更改就无法关闭文件。 谢谢!

我坐在那里想,"if only there was a Save Copy As… option..."

然后我意识到解决方案就在我面前:the .SaveCopyAs method


Workbook.SaveCopyAs Method (Excel)

Saves a copy of the workbook to a file but doesn't modify the open workbook in memory.

Syntax

expression.SaveCopyAs(Filename)

  • expression - a variable that represents a Workbook object.
  • Filename Variant (Required) - Specifies the file name for the copy.

注意:‖文档错误地说 Filename 参数是 可选(这不会有道理)。
我有 edited MSDN 页面,等待批准。