作者: littleboy 2024-03-13 16:00:13

VBA-获得相对路径方法

桌面

1
2
Dim path As String
path = Environ\$(\"USERPROFILE\") &[\\\\Desktop](file:///\Desktop)

程序

Excel_VBA 获得当前文件位置方法

1
ThisWorkbook.Path & \"\\\" & ThisWorkbook.Name

一、通过 ActiveWorkbook 路径获取文件路径

在 VBA 中,我们可以通过 ActiveWorkbook 获取当前操作的 Excel 文件的路径。ActiveWorkbook 属性返回当前活动工作簿(workbook)的对象。以下是获取当前文件路径的示例:

1
2
3
Sub GetFilePath()
MsgBox ActiveWorkbook.Path
End Sub

这将输出一个包含当前文件路径的信息框。

二、通过 ThisWorkbook 路径获取文件路径

在 VBA 中,我们还可以通过 ThisWorkbook 获取当前打开的 Excel 文件的路径。ThisWorkbook 是指当前正在运行的 Excel 文件的工作簿对象。以下是获取当前文件路径的示例:

1
2
3
Sub GetFilePath()
MsgBox ThisWorkbook.Path
End Sub

这将输出一个包含当前文件路径的信息框。

三、使用 VBA Dir 函数获取文件路径

我们还可以使用 VBA
Dir 函数来获取当前工作目录下的已知文件的路径。Dir 函数只能用于当前工作目录。

以下是获取文件路径的示例:

1
2
3
4
5
Sub GetFilePath()
Dim fileName As String
fileName = \"test.xlsx\" \'设置文件名
MsgBox CurDir() & \"\\\" & fileName \'输出文件路径
End Sub

在这个例子中,CurDir()函数会返回当前工作目录,我们使用它加上我们的文件名来获取文件的完整路径。

四、使用 Shell 对象获取文件路径

我们可以使用 VBA 的 Shell 对象来获取当前运行文件的路径。这种方法允许我们运行系统命令并查看结果。

以下是获取文件路径的示例:

1
2
3
4
5
6
7
Sub GetFilePath()
Dim filePath As String
With CreateObject(\"WScript.Shell\")
filePath = .Exec(\"cmd /c cd\").StdOut.ReadAll
End With
MsgBox filePath
End Sub

五、使用 Environ 函数获取文件路径

我们可以使用 Environ 函数来获取计算机环境变量。其中一个环境变量是”USERPROFILE”,表示当前用户的主目录。我们可以使用这个环境变量来获取当前文件夹的路径。

以下是获取文件路径的示例:

1
2
3
4
5
Sub GetFilePath()
Dim path As String
path = Environ(\"USERPROFILE\") & \"\\Documents\\\"
MsgBox path
End Sub

在这个例子中,我们使用 Environ 函数获取当前用户的主目录,然后加上”文档(Documents)”子文件夹,以获得当前 Excel 文件的路径。

六、使用 Application 对象获取文件路径

最后,我们还可以使用 VBA 的 Application 对象来获取当前 Excel 文件的路径。

以下是获取文件路径的示例:

1
2
3
4
5
Sub GetFilePath()
MsgBox Application.ActiveWorkbook.FullName \'完整路径
MsgBox Application.ActiveWorkbook.Path \'目录路径
MsgBox ActiveDocument.Name \'文件名
End Sub

在这个例子中,我们使用 ActiveWorkbook.FullName 和 ActiveWorkbook.Path 属性来获取文件的完整路径和目录路径。我们还可以使用 ActiveDocument.Name 属性来获取文件名。