我正在尝试检查目录是否存在。
我尝试了以下操作...
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.Path
或App.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