检查excel 2010 vba中是否存在目录

检查excel 2010 vba中是否存在目录,excel,vba,Excel,Vba,我让用户输入一些信息MyBarcode和MyScan,这些信息将用于创建目录。如果该目录存在,我希望显示一条消息,指示该目录并返回到用户可以输入数据的步骤。下面是vba,除了目录检查之外,它似乎正常工作,我需要一些帮助。我希望这是一个良好的开端。谢谢:) 使用Dir和GetAttr函数检查目录是否存在: Function DirectoryExists(Directory As String) As Boolean DirectoryExists = False If Not D

我让用户输入一些信息
MyBarcode和MyScan
,这些信息将用于创建目录。如果该目录存在,我希望显示一条消息,指示该目录并返回到用户可以输入数据的步骤。下面是
vba
,除了目录检查之外,它似乎正常工作,我需要一些帮助。我希望这是一个良好的开端。谢谢:)


使用
Dir
GetAttr
函数检查目录是否存在:

Function DirectoryExists(Directory As String) As Boolean
    DirectoryExists = False
    If Not Dir(Directory, vbDirectory) = "" Then
        If GetAttr(Directory) = vbDirectory Then
            DirectoryExists = True
        End If
    End If
End Function

Sub TestDirectoryExists()
    Dim Directory As String
    Directory = "c:\src"                    ' is a valid directory
    Debug.Print DirectoryExists(Directory)  ' shows True
    Directory = "c:\src1"                   ' is not a valid directory
    Debug.Print DirectoryExists(Directory)  ' shows False
    Directory = "x:\src"                    ' is not a valid drive
    Debug.Print DirectoryExists(Directory)  ' shows False
    Directory = "c:\test.txt"               ' is a file
    Debug.Print DirectoryExists(Directory)  ' shows False
End Sub
当我们与vbDirectory属性一起使用时,除了查找没有特殊属性的文件外,还查找文件夹。为了确认我们确实在寻找一个文件夹,我们将使用 并检查路径是否确实是文件夹

您可以在按钮单击事件中随意使用此功能。

不应该吗

If GetAttr(Directory) AND vbDirectory Then
而不是

If GetAttr(Directory) = vbDirectory Then
根据什么

If GetAttr(Directory) = vbDirectory Then