VBA Excel 备份:通过 VBA 以新名称保存当前工作簿的副本,保留 VBA 脚本,无提示
Posted
技术标签:
【中文标题】VBA Excel 备份:通过 VBA 以新名称保存当前工作簿的副本,保留 VBA 脚本,无提示【英文标题】:VBA Excel Backup: Save copy of current workbook via VBA under a new name, keep VBA scripts, no prompt 【发布时间】:2013-04-04 11:38:11 【问题描述】:我需要制作一个 VBA 脚本,它可以获取当前工作簿的完整副本并将其保存为新名称。
它需要是包含 VBA 脚本和所有内容的完整副本。
可能不会提示用户输入任何内容 - 新文件名(和位置)将由代码提供。
【问题讨论】:
.SaveCopyAs
? msdn.microsoft.com/en-us/library/office/ff835014.aspx
非常简单,并且完全支持 Excel 宏记录器。请记住使用另存为并将文件扩展名设置为“.xlsm”...
【参考方案1】:
这样就足够了吗?
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="C:\Data.xlsm"
Application.DisplayAlerts = True
【讨论】:
当结合@Siddharth Rout 和 roger_rowland 我得到了一个工作代码。谢谢!【参考方案2】:试试这个:
Activeworkbook.SaveCopyAs "C:\Data.xlsm"
【讨论】:
欢迎来到 ***!尽管此答案可能是正确且有用的,但如果您随附一些解释以解释它如何帮助解决问题,则最好。如果有更改(可能不相关)导致它停止工作并且用户需要了解它曾经是如何工作的,这在未来变得特别有用。【参考方案3】:我注意到,至少对于 Excel 2013 ActiveWorkbook.SaveAs Filename:="C:\Data.xlsm
可能无法正常工作,因为我说 excel 无法保存为文件类型 xlsm。
但是,我确实找到了适合自己的解决方法,并想在此处添加它作为可能遇到相同问题的其他人的参考。
如果您在代码后添加, FileFormat:=52
,它将能够保存为xlsm
格式。
所以这对我有用:
ActiveWorkbook.SaveAs Filename:="C:\Data.xlsm, FileFormat:=52"
编码愉快!
【讨论】:
以上是关于VBA Excel 备份:通过 VBA 以新名称保存当前工作簿的副本,保留 VBA 脚本,无提示的主要内容,如果未能解决你的问题,请参考以下文章
[Excel VBA] Shape.Type属性名称及对应值列表
使用 VBA 保存和关闭办公程序(word、excel、access、outlook)以进行备份