VBA SaveCopyAs具有来自variables的文件path

我在VBA方面并不擅长,我想知道有人能帮助我。 有我的问题。

我不想将工作簿另存为文件夹,但取决于用户,path会更改。 所以,为了解决这个问题,我创build了这个代码:

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 

谢谢你的帮助!

你的代码应该是这样的:

 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" (即不使用() ),但是我认为最好使用括号来表示它是一个被调用的函数,而不仅仅是一个variables。