相对路径,表示的是一个文件相对另外一个文件的位置,使用相对路径在文件目录结构稳定的情况下可以更少的修改变量,达到更换环境更快的部署。
大家可以参考一下每个编程语言(但是VBA却没有)相对路径表示方式。
- ./ 代表当前目录,html中可以省略
- ../ 代表上级目录
- ../../代表上上级目录
- ../../../ 以此类推5)
/ 代表根目录
在VBA中通过【ThisWorkbook.Path】获取当前VBA所在Excel的路径再拼接上相对路径来解决。
01.ThisWorkbook.Path获取当前VBA所在Excel的路径
Sub Test_Path()
Dim vPath As String
vPath = ThisWorkbook.Path
Debug.Print vPath
End Sub
在【立即窗口】查看当前的Excel所在的路径
02.ThisWorkbook.Path拼接"相对路径"
Sub Test_Path()
Dim vPath As String
Dim wk_In As Workbook
vPath = ThisWorkbook.Path & "\..\year\month\"
ThisWorkbook.Sheets(1).Activate
Set wk_In = Application.Workbooks.Open(vPath & "path_year.xlsx")
End Sub
vPath = ThisWorkbook.Path & "..\year\month" 返回当前VBA所在Excel的上一层的year文件夹下的month文件夹,原理与每个编程语言(但是VBA却没有)相对路径表示方式类似。
参考链接
http://www.360doc.com/content/19/0307/16/16936479_819883263.shtml
https://stackoverflow.com/questions/42017541/relative-paths-vba
http://club.excelhome.net/thread-99626-1-1.html