我需要从绝对路径走向相对路径。
我的宏位于文件夹\ models \ vba
中并且此宏使用文件夹\ models \ Main和\ models \ aear中的工作表,如下所示
Set Main = Workbooks.Open("D:\Shared\Models\Main\Main 2017.xlsx")
我一直在购物,看起来最容易使用
ThisWorkbook.Path
返回一个目录,然后输入宏地图的最佳方法是什么。?
答案 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"))