相对路径VBA

时间:2017-02-03 05:43:41

标签: excel vba excel-vba

我需要从绝对路径走向相对路径。

我的宏位于文件夹\ models \ vba

并且此宏使用文件夹\ models \ Main和\ models \ aear中的工作表,如下所示

 Set Main = Workbooks.Open("D:\Shared\Models\Main\Main 2017.xlsx")

我一直在购物,看起来最容易使用

ThisWorkbook.Path

返回一个目录,然后输入宏地图的最佳方法是什么。?

1 个答案:

答案 0 :(得分:3)

您可以按常规方式构建相对路径,但您需要始终将它们附加到ThisWorkbook.Path

Set Main = Workbooks.Open(ThisWorkbook.Path & "\..\Main\Main 2017.xlsx")

每个..在文件夹树中向上一步。

你可以通过构建自己的函数来封装这个函数,该函数构造相对路径的绝对路径

Function RelToAbs(RelPath as string) as string
    RelToAbs = ThisWorkbook.Path & "\" & RelPath
End function

Set Main = Workbooks.Open(RelToAbs("..\Main\Main 2017.xlsx"))