TLDR :
如何使用VBA将带有宏的Excel文件另存为没有宏的Excel文件?抑制目标格式不支持宏的提示?
我有一个xlsb文件(带有宏的Excel 2007+),里面是内容和应该将该文件另存为xlsx的按钮(Excel 2007 WITHOUT Macros)。到目前为止,一切都很好。我将使用ActiveWorkbook.SaveAs FileName:=name, FileFormat=xlOpenXMLWorkbook, Password="xyz"
但这总是会产生一个提示,告诉用户以目标格式保存数据意味着丢失宏数据以及他/她是否要继续...
我已经尝试过Application.DisplayAlerts = False
和ThisWorkbook.CheckCompatibility = False
。我还用MacroRecorder记录了相同的动作,但似乎也无法跳过即将出现的提示。
我最后的尝试是使用ThisWorkbook.Sheets.Copy
复制内容并尝试删除VBProject数据。尝试了各种方法,但似乎无法真正删除vb-project数据。执行remove和类似的操作后,调试器将始终显示三项vb-project-data。
我明天会检查一下,但是看起来很像我尝试过的代码... Macro to save active Sheet as new workbook, ask user for location and remove macros from the new workbook
答案 0 :(得分:1)
您可以使用
Thisworkbook.SaveCopyAs ([filename.xlsx])
。
这将创建工作簿的副本,其中没有宏,也没有警报。 [filename.xlsx]当然应该替换为您自己的文件路径。使用xlsx扩展名确保您不复制宏。