我有一个带有.xlsb扩展名的Excel文件,并使用它的宏根据内容生成其他几个Excel工作表。宏的工作方式是更改原始Excel文件,然后使用SaveCopyAs
方法保存生成的Excel工作表。
生成的Excel工作表应以.xlsx扩展名和格式保存。
使用ActiveWorkbook.SaveCopyAs“C:\ TEMP \ XXXX.XLSX”方法对我不起作用,因为虽然它确实更改了扩展名,但它不会更改文件格式,因此当用户打开生成的Excel文件时收到警告消息(类似“文件扩展名和格式不匹配”)。 SaveCopyAs
方法没有任何其他参数。
如何保存原始.xlsb文件的副本,并将扩展名和格式更改为.xlsx?
注意:Workbook.SaveAs方法确实有fileformat
选项,不确定这是否有帮助/相关。
答案 0 :(得分:1)
根据Zac的提示,在我的情况下,它是一个更好的解决方案,将带有相关更改的选项卡复制到新创建的excel文件中,然后使用新文件名保存。
ThisWorkbook.Sheets("myTab").Copy
ActiveWorkbook.SaveAs Filename:="c:\temp\xyz.xlsx", FileFormat:=51
ActiveWorkbook.Close
这对我来说实际上是一个更好的解决方案,因为最终用户确实只需要生成的选项卡,而不是原始excel文件中的宏或任何其他数据。