Excel 自动保存到用户桌面生成文件格式错误

Excel 自动保存到用户桌面生成文件格式错误,excel,vba,Excel,Vba,我有一个由其他用户填写的产品创建模板 我有两个问题 首先,我想用预定义的名称将文件保存到用户的桌面。我在Excel2010中编写了类似的代码。在Excel 2013中,文件路径不同。所以我必须提取用户的桌面路径,他们可以使用PC和其他语言,所以我不确定下面的代码是否有效 CreateObject("WScript.Shell").specialfolders("Desktop") 其次,我想另存为“xlsm”,当我将文件扩展名更改为“.xlsm”时,它没有保存 我的Excel 2010代码

我有一个由其他用户填写的产品创建模板

我有两个问题

首先,我想用预定义的名称将文件保存到用户的桌面。我在Excel2010中编写了类似的代码。在Excel 2013中,文件路径不同。所以我必须提取用户的桌面路径,他们可以使用PC和其他语言,所以我不确定下面的代码是否有效

CreateObject("WScript.Shell").specialfolders("Desktop") 
其次,我想另存为“xlsm”,当我将文件扩展名更改为“.xlsm”时,它没有保存

我的Excel 2010代码

ActiveWorkbook.SaveAs Environ$("UserProfile") & "\My Documents\" & _
  Environ$("UserName") & " - " & Format(Date, "yyyy-mmm-dd") & ".xls"

查看的文档,您将看到
.SaveAs
有一个
FileFormat
参数(另请参阅)

因此,您必须使用

ActiveWorkbook.SaveAs Filename:=Environ$("UserProfile") & "\My Documents\" & _ 
    Environ$("UserName") & " - " & Format(Date, "yyyy-mmm-dd") & ".xlsm", _ 
    FileFormat:=xlOpenXMLWorkbookMacroEnabled

@user3551927桌面路径是
DesktopPath=Environ$(“USERPROFILE”)&“\desktop”
Hi,我的问题是,如果用户Windows的语言与英语不同怎么办?这只是一个假设问题还是一个实际问题?如果我没有完全错的话,在Windows的所有本地化版本中,桌面文件夹的名称都是
desktop
。所以这应该没有问题。目前,我无法与其他用户核对。谢谢你的帮助,祝你度过愉快的一天