检查目录是否存在

时间:2017-08-22 11:07:50

标签: vba excel-vba excel

我有这段代码,但无法让它运行返回Bad file name or number error

If Dir(ws.txtFldr, vbDirectory) = "" Then
    MsgBox "Output Directory does not exist!", vbExclamation, "Error!"
    Exit Sub
End If

我只想检查给定目录是否存在,如果不存在,则提示消息。 txtFldr是一个activeX文本框控件,ws是一个工作表。我实际上是在共享目录或本地保存它。

1 个答案:

答案 0 :(得分:0)

这个怎么样:

If Len(Dir(ws.txtFldr, vbDirectory)) = 0 Then
    MsgBox "Output Directory does not exist!", vbExclamation, "Error!"
    Exit Sub
End If

通过在互联网上进行搜索,还可以显示许多其他方式。例如,here它有另一种方法:

Public Function FileFolderExists(strFullPath As String) As Boolean
'Author       : Ken Puls (www.excelguru.ca)
'Macro Purpose: Check if a file or folder exists

    If strFullPath = vbNullString Then Exit Function
    On Error GoTo EarlyExit
    If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists = True

EarlyExit:
    On Error GoTo 0
End Function

用法:

Public Sub TestFolderExistence()
'Author       : Ken Puls (www.excelguru.ca)
'Macro Purpose: Test if directory exists
    If FileFolderExists(ws.txtFldr) Then
        MsgBox "Folder exists!"
    Else
        MsgBox "Folder does not exist!"
    End If
End Sub

第二种方法是使用VBA和Error标签中的一些GoTo处理功能来绕过代码。