我想要:
- 使用模板工作簿进行数据操作
- 将此工作簿的副本另存为 .xlsx(SaveCopyAs不允许您更改文件类型,否则会很棒)
- 继续显示原始模板(不是“另存为”的模板)
UsingSaveAs
完全符合预期 - 它在删除宏的同时保存了工作簿,并向我展示了新创建的 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"
),但在打开它时会出现错误,因为它现在具有无效的文件格式。