如何检查 VBA 中是否存在相对路径

如何检查 VBA 中是否存在相对路径

我正在尝试检查目录是否存在。

我尝试了以下操作...

Private Sub Workbook_Open()
 If ReportFolderStatus("\VBAProjectFiles") Then
        MsgBox "Folder exists!"
    Else
        MsgBox "Folder does not exist!"
    End If
End Sub

Function ReportFolderStatus(fldr) As Boolean
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   If (fso.FolderExists(fldr)) Then
      ReportFolderStatus = True
   Else
      ReportFolderStatus = False
   End If
End Function

但我总是收到“文件夹不存在”的信息。

文件夹结构:

--folder#1
 |--folder#2
    |--VBAProjectFiles
    |excel.xlsm

答案1

我相信你想使用

ThisWorkbook.Path

这将为您提供相对路径

如果不起作用,请尝试ActiveWorkbook.PathApp.Path

If Dir(ThisWorkbook.Path & "\VBAProjectFiles", vbDirectory) = "" Then

关于绝对路径的原始答案(OP问题从绝对路径改为相对路径,但我觉得这仍然有用)

你最好输入完整路径

if FileExist("c:\VBAProjectFiles\myfile.xml") Then

但是,尽管检查了FileExist它,但看起来您实际上正在寻找目录的存在。您可以使用以下任一方法:

If Dir("C:\VBAProjectFiles", vbDirectory) = "" Then

或者

If Len(Dir("C:\VBAProjectFiles", vbDirectory)) = 0 Then

或者

If GetAttr("C:\VBAProjectFiles") And vbDirectory) = vbDirectory then

相关内容