VBA SaveCopyAs包含来自变量的文件路径

时间:2017-03-06 02:36:59

标签: excel vba excel-vba

我在VBA中并不是很好,我想知道是否有人可以帮助我。有我的问题。

我不想将工作簿保存到文件夹,但根据用户的不同,路径会发生变化。因此,为了解决这个问题,我创建了这段代码:

Public Function MyDocsPathS() As String
    MyDocsPathS = Environ$("USERPROFILE") & "\" & "OneDrive\Soumission"
End Function

这很有效。但是,我不知道如何在SaveCopyAs函数中编写它。我已经尝试过这种方法和其他方法但没有取得任何成功:(参见**之间的部分)

Sub Soumission()
    Sheets("Modèle Soumission").Visible = True
    **ActiveWorkbook.SaveCopyAs "MyDocsPathS & \S0000x.xlsm"**
    Sheets("Modèle Soumission").Visible = False
    Workbooks.Open (MyDocsPathS & ("S0000x") & ".xlsm")
End Sub

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您的代码应如下所示:

Public Function MyDocsPathS() As String
    MyDocsPathS = Environ$("USERPROFILE") & "\" & "OneDrive\Soumission"
End Function

Sub Soumission()
    Sheets("Modèle Soumission").Visible = True
    ActiveWorkbook.SaveCopyAs MyDocsPathS() & "\S0000x.xlsm"
    Sheets("Modèle Soumission").Visible = False
    Workbooks.Open MyDocsPathS() & "\S0000x.xlsm"
End Sub

从理论上讲,您可以使用MyDocsPathS() & "\S0000x.xlsm"或仅使用MyDocsPathS & "\S0000x.xlsm"(即没有()),但我相信最好将括号放在那里以使其更清晰被调用的函数,而不仅仅是变量。