Excel VBA-如果从Personal.xlsb运行宏,如何获取工作簿文件路径/位置

Excel VBA-如果从Personal.xlsb运行宏,如何获取工作簿文件路径/位置,excel,save-as,vba,Excel,Save As,Vba,我已将宏隐藏在Personal.xlsb文件中,我希望将一个文件保存在与应用宏的工作簿相同的目录中。 当前,当我使用: Application.ThisWorkbook.Path 它获取的是Personal.xlsb(宏的来源)的位置,而不是工作簿的目录。有人能告诉我如何修复此问题(无需向工作簿中添加模块)任何工作簿对象都可以使用路径属性,而不仅仅是此工作簿对象 因此,要获得ActiveWorkbook的路径,可以使用ActiveWorkbook.path 或者,例如,如果您使用以下方式打开工

我已将宏隐藏在Personal.xlsb文件中,我希望将一个文件保存在与应用宏的工作簿相同的目录中。 当前,当我使用:

Application.ThisWorkbook.Path

它获取的是Personal.xlsb(宏的来源)的位置,而不是工作簿的目录。有人能告诉我如何修复此问题(无需向工作簿中添加模块)

任何
工作簿
对象都可以使用
路径
属性,而不仅仅是
此工作簿
对象


因此,要获得
ActiveWorkbook
的路径,可以使用
ActiveWorkbook.path

或者,例如,如果您使用以下方式打开工作簿:

Dim wb As Workbook
Set wb = Workbooks.Open("C:\Temp\Test\File1.xlsx")

然后您可以使用
wb.Path
,它当然会返回
“C:\Temp\Test”

可以在任何
工作簿
对象上使用
路径
属性,而不仅仅是在
此工作簿
对象上


因此,要获得
ActiveWorkbook
的路径,可以使用
ActiveWorkbook.path

或者,例如,如果您使用以下方式打开工作簿:

Dim wb As Workbook
Set wb = Workbooks.Open("C:\Temp\Test\File1.xlsx")

然后您可以使用
wb.Path
,它当然会返回
“C:\Temp\Test”

ActiveWorkbook.Path
将给出活动工作簿的路径。如果您显示您的代码,我们可以帮助您决定这是否是要使用的合适的东西,或者它是否是您需要在上使用
路径
属性的其他工作簿对象。@YowE3K很好,谢谢!这就是我所需要的,只是找到我正在工作的工作簿,而不是宏的来源,再次非常感谢!:问题解决了@YowE3K请填写答案,以便将问题标记为已回答。@Patrickonorez Done
ActiveWorkbook.Path
将给出活动工作簿的路径。如果您显示您的代码,我们可以帮助您决定这是否是要使用的合适的东西,或者它是否是您需要在上使用
路径
属性的其他工作簿对象。@YowE3K很好,谢谢!这就是我所需要的,只是找到我正在工作的工作簿,而不是宏的来源,再次非常感谢!:问题解决了@YowE3K请填写一个答案,以便该问题可以标记为已回答。@Patrickhornez Donecheers!在我的例子中,只需在misc places的几个文件上运行一个宏,并让它在同一目录中吐出一个csv文件,因此需要一个动态解决方案:)干杯!在我的例子中,只需在misc places中的多个文件上运行一个宏,并让它在同一目录中吐出一个csv文件,因此需要一个动态解决方案:)