VBA:Excel 2013自动保存用户桌面文件格式错误

时间:2018-07-31 08:41:43

标签: excel vba excel-vba

我有一个产品创建模板,该模板由其他用户填写。我想将其自动保存到用户桌面。我有问题。

第一个是我想使用预定义名称将文件保存到用户桌面。我在上一份工作(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"

预先感谢

1 个答案:

答案 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