我正在制作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副本)...我找不到完美的答案......
答案 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