首页 > 解决方案 > 保存工作簿的“备份副本”而不提交对 Excel 的更改?

问题描述

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

我想以编程方式以不可见的方式将工作簿的“备份”副本保存为当前状态,而不会将更改“提交”到 Excel 或破坏撤消历史记录。

示例场景:

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

需要注意的是,创建备份副本的操作需要对用户“不可见”,这样如果他们稍后Save close discarding changes,结果将与未创建我的备份副本相同。

这表示:

据我所知,workbook.SaveAs始终更新工作簿的名称并清除“撤消”历史记录,因此无法在不保留更改的情况下关闭文件。谢谢!

标签: excelvbafilesavebackup

解决方案


我坐在那里想,“如果只有另存为......</strong>选项......”

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


Workbook.SaveCopyAs 方法 (Excel)

将工作簿的副本保存到文件中,但不修改内存中打开的工作簿。

句法

expression <代码>。<strong> SaveCopyAs( <em> Filename <代码>)

  • expression - 表示Workbook对象的变量。
  • Filename 变体(必需)- 指定副本的文件名。

注意: 文档错误地说该Filename参数是可选的(这没有意义)。
      我已经编辑了 MSDN 页面,等待批准。


推荐阅读