我在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
感谢您的帮助!
答案 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"
(即没有()
),但我相信最好将括号放在那里以使其更清晰被调用的函数,而不仅仅是变量。