VBA中的相对路径

相对路径,表示的是一个文件相对另外一个文件的位置,使用相对路径在文件目录结构稳定的情况下可以更少的修改变量,达到更换环境更快的部署。

大家可以参考一下每个编程语言(但是VBA却没有)相对路径表示方式。

  1. ./ 代表当前目录,html中可以省略
  2. ../ 代表上级目录
  3. ../../代表上上级目录
  4. ../../../ 以此类推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