VBA代码并不总是保存在桌面上

时间:2017-01-21 09:04:31

标签: vba excel-vba excel

在大多数情况下,我有一段代码会保存到桌面,但有时当我连接到网络时,它会保存到网络文件夹中。我希望在所有情况下始终将其保存在我的桌面上。

Sub Svas()

Dim Name As String
FilePath = "C:\Users\" & (Environ$("Username")) & "\Desktop": Name = "ETC & ".xlsm"
ActiveWorkbook.SaveAs Filename:=Name, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub

我不是一个强大的程序员,我会赞赏一个例子或任何帮助。

2 个答案:

答案 0 :(得分:1)

我认为问题是你要保存文件,文件名设置为'File'字符串变量,不包括文件路径 - 尝试类似下面的内容,你将filePath,fileName和fileExt分成3个单独的部分以帮助保持组织,然后您可以轻松地在最后连接它们以创建完整的文件名和路径。

Sub Svas()
Dim fName As String
Dim fPath As String
Dim fExt As String
fPath = "C:\Users\" & (Environ$("Username")) & "\Desktop" 'Code for filepath
fName = "ETC" 'Code for filename
fExt = ".xlsm"
ActiveWorkbook.SaveAs fileName:=fPath & "\" & fName & fExt, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

希望这有帮助, TheSilkCode

答案 1 :(得分:0)

在路径中的最后一个文件夹之后,您需要在文件名前添加\。 在您的情况下,您需要添加"\Desktop\"

由于您在代码中使用“ETC”,因此不确定此代码是否需要另一个变量,您可以使用以下代码:

Sub Svas()

Dim FilePath As String

FilePath = "C:\Users\" & Environ$("Username") & "\Desktop\ETC.xlsm"
ActiveWorkbook.SaveAs Filename:=FilePath, FileFormat:=52, CreateBackup:=False

End Sub