Excel VBA:具有不同文件扩展名的SaveCopyAs

时间:2017-08-02 08:10:13

标签: excel vba excel-vba

我有一个带有.xlsb扩展名的Excel文件,并使用它的宏根据内容生成其他几个Excel工作表。宏的工作方式是更改原始Excel文件,然后使用SaveCopyAs方法保存生成的Excel工作表。

生成的Excel工作表应以.xlsx扩展名和格式保存。

使用ActiveWorkbook.SaveCopyAs“C:\ TEMP \ XXXX.XLSX”方法对我不起作用,因为虽然它确实更改了扩展名,但它不会更改文件格式,因此当用户打开生成的Excel文件时收到警告消息(类似“文件扩展名和格式不匹配”​​)。 SaveCopyAs方法没有任何其他参数。

如何保存原始.xlsb文件的副本,并将扩展名和格式更改为.xlsx?

注意:Workbook.SaveAs方法确实有fileformat选项,不确定这是否有帮助/相关。

1 个答案:

答案 0 :(得分:1)

根据Zac的提示,在我的情况下,它是一个更好的解决方案,将带有相关更改的选项卡复制到新创建的excel文件中,然后使用新文件名保存。

ThisWorkbook.Sheets("myTab").Copy
ActiveWorkbook.SaveAs Filename:="c:\temp\xyz.xlsx", FileFormat:=51
ActiveWorkbook.Close

这对我来说实际上是一个更好的解决方案,因为最终用户确实只需要生成的选项卡,而不是原始excel文件中的宏或任何其他数据。