我想要:
- 使用模板工作簿进行数据操作
- 将此工作簿另存为 .xlsx 文件(SaveCopyAs 无法更改文件类型,否则这将是很好的)
- 继续显示原始模板(而不是“保存为”版本)
使用 SaveAs
正好符合预期- 它保存了工作簿并删除了宏,并向我呈现新创建的 SavedAs 工作簿的视图。
但不幸的是,这意味着:
- 除非重新打开,否则我不再查看我的宏启用的工作簿
- 代码执行在此处停止,因为
- 如果我忘记保存,则会丢弃任何宏更改(注:对于生产环境,这没问题,但对于开发来说,这是一个巨大的痛苦)
有没有办法做到这一点?
'current code
Application.DisplayAlerts = False
templateWb.SaveAs FileName:=savePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
templateWb.Activate
Application.DisplayAlerts = True
'I don't really want to make something like this work (this fails, anyways)
Dim myTempStr As String
myTempStr = ThisWorkbook.Path & "\" & ThisWorkbook.Name
ThisWorkbook.Save
templateWb.SaveAs FileName:=savePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close
Workbooks.Open (myTempStr)
'I want to do something like:
templateWb.SaveCopyAs FileName:=savePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 'SaveCopyAs only takes one argument, that being FileName
需要注意的是,虽然SaveCopyAs
可以让我将其保存为不同类型(例如templateWb.SaveCopyAs FileName:="myXlsx.xlsx"
),但打开时会出现错误,因为它现在具有无效的文件格式。
SaveCopyAs
创建一个副本,然后打开该副本并进行另存为操作? - Siddharth Rout