excel - 保存工作簿的“备份副本”而不提交对 Excel 的更改?
问题描述
我不确定这是可能的,但也许我遗漏了一些明显的东西。
我想以编程方式以不可见的方式将工作簿的“备份”副本保存为当前状态,而不会将更改“提交”到 Excel 或破坏撤消历史记录。
示例场景:
- 用户打开
c:\folder1\workbookA.xlsm
- 用户对他们可能不希望提交的工作簿进行更改。
- 我的 sub 由于计时器或其他事件而开始,并在后台将工作簿的副本另存为
c:\folder2\workbookB.xlsm
需要注意的是,创建备份副本的操作需要对用户“不可见”,这样如果他们稍后Save
或 close discarding changes
,结果将与未创建我的备份副本相同。
这表示:
- 标题栏中的文件名没有改变,
- Ctrl+Z/撤消仍然有效,
- 如果用户关闭工作簿,仍然会提示他们Save Changes?
(使用 简单workbook.Saved = False
)- 如果他们选择Yes,则工作簿将正常保存
(将文件替换为c:\folder1\workbookA.xlsm
.) - 如果他们选择No,则工作簿将关闭,并且文件
c:\folder1\workbookA.xlsm
仍处于其原始、未修改的形式,就好像在步骤 #2 中没有进行任何更改一样。
- 如果他们选择Yes,则工作簿将正常保存
据我所知,workbook.SaveAs
始终更新工作簿的名称并清除“撤消”历史记录,因此无法在不保留更改的情况下关闭文件。谢谢!
解决方案
我坐在那里想,“如果只有另存为......</strong>选项......”
然后我意识到解决方案就在.SaveCopyAs
我面前: 方法。
Workbook.SaveCopyAs 方法 (Excel)
将工作簿的副本保存到文件中,但不修改内存中打开的工作簿。
句法
expression
<代码>。<strong>SaveCopyAs(
<em>Filename
<代码>)
expression
- 表示Workbook
对象的变量。Filename
变体(必需)- 指定副本的文件名。
注意: 文档错误地说该Filename
参数是可选的(这没有意义)。
我已经编辑了 MSDN 页面,等待批准。
推荐阅读
- sql - 由于 where 子句中的 <>,查询耗时过长
- python - 如何使用 python vidstream 在 django html 页面上进行屏幕共享?
- scala - 如何将两列转换为 List[(Long,Int)] - Spark UDF
- apache-flink - MQTTIO 与 Apache Beam 的连接对于不同的主题表现不同
- angular - 如何从 FormArray 中查找包含角度错误的表单索引?
- c - 如何在 XWindows 中捕获最小化和最大化事件?
- oracle - 如何更正此程序
- kubernetes - 如何修复“[警告]:无法匹配提供的主机模式,忽略:kube-master”
- android - 参数类型“RemoteMessage”不能分配给参数类型“Map”
' - google-apps-script - 从 Google 表单提交生成 PDF 的脚本