通过excel vba保存.xlsx文件,而无需打开已保存的文件

时间:2017-12-20 04:39:49

标签: excel vba

我正在制作excel vba代码,它会生成Outlook消息,并为消息附加excel文件本身(xlsx)

下面的

来自我的代码。

ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Date & " " & "Position Report Ver.2.xlsx", FileFormat:=51 

此代码将xlsx文件保存到特定文件夹。

我只想保存复制的xlsx文件。

但是我的代码在保存后立即自动打开保存的文件(xlsx文件。)。和原始文件已关闭。

宏应该在生成xlsx文件后运行,因为它应该通过vba宏附加到outlook消息。

但是,因为xlsx文件在保存后立即打开,所以在保存后我无法运行vba代码。

如何在不打开的情况下从xlsm保存到xlsx?

我搜索了stackoverflow,但我找不到解决方案。代码将无法正常工作或无法保存到xlsx(只是xlsm副本)...我找不到完美的答案......

2 个答案:

答案 0 :(得分:3)

请试一试......

请记住检查文件名,因为我使用Format函数从文件名中删除无效字符。

ThisWorkbook.Sheets.Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Format(Date, "mm.dd.yyyy") & " " & "Position Report Ver.2.xlsx", FileFormat:=51
ActiveWorkbook.Close

答案 1 :(得分:0)

@sktneer,这个效果更好。 ThisWorkbook没有复制带有数据的工作表,只打开了一个空白工作簿。但ActiveWorkbook完成了这项工作。

ActiveWorkbook.Sheets.Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Format(Date, "mm.dd.yyyy") & " 
" & "Position Report Ver.2.xlsx", FileFormat:=51
ActiveWorkbook.Close