VBA SaveCopyAs,带有来自变量的文件路径
我不是很擅长VBA,我想知道是否有人能帮助我。这是我的问题 我不想将工作簿另存到文件夹中,但路径会根据用户的不同而变化。因此,为了解决这个问题,我创建了以下代码:VBA SaveCopyAs,带有来自变量的文件路径,vba,excel,Vba,Excel,我不是很擅长VBA,我想知道是否有人能帮助我。这是我的问题 我不想将工作簿另存到文件夹中,但路径会根据用户的不同而变化。因此,为了解决这个问题,我创建了以下代码: Public Function MyDocsPathS() As String MyDocsPathS = Environ$("USERPROFILE") & "\" & "OneDrive\Soumission" End Function 这很有效。但是,我不知道如何在SaveCopyAs函数中编写它。我尝
Public Function MyDocsPathS() As String
MyDocsPathS = Environ$("USERPROFILE") & "\" & "OneDrive\Soumission"
End Function
这很有效。但是,我不知道如何在SaveCopyAs函数中编写它。我尝试过这种方法和其他方法,但没有成功:(见**之间的部分)
谢谢你的帮助 您的代码应该如下所示:
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()&“\s000x.xlsm”
,也可以只使用MyDocsPathS&“\s000x.xlsm”
(即不使用()
),但我认为最好在其中放上括号,以便更清楚地表明它是正在调用的函数,不仅仅是一个变量。@YowE3K函数MyDocsPathS的意义是什么?它不获取变量,也不进行任何特殊计算。您只需声明一个名为MyDocsPathS
的变量,该变量获取Environ$(“USERPROFILE”)&“\”和“OneDrive\Soumission”
@ShaiRado的值,我个人会在自己的代码中使用一个全局变量,并在主代码开始时对其进行初始化。但是拥有一个函数有很多优点(代码重用性方面),这也是OP选择的方式。解释如何以我喜欢的方式做事超出了OP当前问题的范围。@YowE3K看看这里你熟悉使用MSXML2.XMLHTTP
object吗?@ShaiRado-对不起,我一生中可能用过一次,也许两次。(更可能的是永远不会——我不记得我会用它做什么。)我浏览了代码,看看是否有什么明显的东西对我突出(有时明显的东西会被专家忽略,直到一个对它一无所知的人说“嘿,这样或那样有意义吗?”),但我什么也没看到。
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