我有一个产品创建模板,该模板由其他用户填写。我想将其自动保存到用户桌面。我有问题。
第一个是我想使用预定义名称将文件保存到用户桌面。我在上一份工作(Excel 2010)中写了一个类似的代码,这是在我使用Excel 2013的新工作中,文件路径不同。因此,我必须提取用户的桌面路径,他们可以将pc与其他语言一起使用,所以我不确定下面的代码是否可以工作。
CreateObject("WScript.Shell").specialfolders("Desktop")
第二个问题是我想将其保存为“ xlsm”,而当我将文件扩展名更改为“ .xlsm”时,它没有保存。
我上次使用的旧代码是;
ActiveWorkbook.SaveAs Environ$("UserProfile") & "\My Documents\" &
Environ$("UserName") & " - " & Format(Date, "yyyy-mmm-dd") & ".xls"
预先感谢
答案 0 :(得分:0)
看看Workbook.SaveAs Method的文档,您会发现.SaveAs
有一个FileFormat
参数(另请参阅XlFileFormat Enumeration)。
因此您必须使用
ActiveWorkbook.SaveAs Filename:=Environ$("UserProfile") & "\My Documents\" & _
Environ$("UserName") & " - " & Format(Date, "yyyy-mmm-dd") & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled