相对pathVBA

我需要从绝对走向相对path。

我的macros在文件夹\ models \ vba中

并且这个macros使用文件夹\ models \ Main和\ models \ aear中的表单,如下所示

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

我已经购物了,而且它似乎是最容易使用的

 ThisWorkbook.Path 

返回一个目录的最好方法是什么,然后inputmacros映射。

你可以用通常的方式构造相对path,但是你总是需要把它们附加到ThisWorkbook.Path

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

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

你可以通过构build你自己的函数来最终封装这个函数,从你的相对path构build绝对path

 Function RelToAbs(RelPath as string) as string RelToAbs = ThisWorkbook.Path & "\" & RelPath End function Set Main = Workbooks.Open(RelToAbs("..\Main\Main 2017.xlsx"))