excelvbafileexistsfile-exists

VBA check if file exists


I have this code. It is supposed to check if a file exists and open it if it does. It does work if the file exists, and if it doesn't, however, whenever I leave the textbox blank and click the submit button, it fails. What I want, if the textbox is blank is to display the error message just like if the file didn't exist.

Runtime-error "1004"

Dim File As String
File = TextBox1.Value
Dim DirFile As String

DirFile = "C:\Documents and Settings\Administrator\Desktop\" & File
If Dir(DirFile) = "" Then
  MsgBox "File does not exist"
Else
    Workbooks.Open Filename:=DirFile
End If

Solution

  • something like this

    best to use a workbook variable to provide further control (if needed) of the opened workbook

    updated to test that file name was an actual workbook - which also makes the initial check redundant, other than to message the user than the Textbox is blank

    Dim strFile As String
    Dim WB As Workbook
    strFile = Trim(TextBox1.Value)
    Dim DirFile As String
    If Len(strFile) = 0 Then Exit Sub
    
    DirFile = "C:\Documents and Settings\Administrator\Desktop\" & strFile
    If Len(Dir(DirFile)) = 0 Then
      MsgBox "File does not exist"
    Else
     On Error Resume Next
     Set WB = Workbooks.Open(DirFile)
     On Error GoTo 0
     If WB Is Nothing Then MsgBox DirFile & " is invalid", vbCritical
    End If