5
votes

I'm trying to open a file dialog box in excel so a user can select a file. For some reason I keep getting a run time error after I've selected the file I want. Here is the code:

Dim dartFile As String

dartFile = Application.GetOpenFilename _
(Title:="Please choose DART output to open", _
FileFilter:="Excel Files *.xlsx* (*.xlsx*),")

If dartFile = False Then
    MsgBox "No file selected.", vbExclamation, "Sorry!"
    Exit Sub
Else
    'Run the rest of the Sub
End IF

The error pops up when ever I select a valid .xlsx file, and the debugger says there is something wrong with this line:

If dartFile = False Then

Any help would be appreciated.

3
Dim dartFile As Variant (so it can host a bool or a string)Alex K.
Doh! Sneaky variant data type.. Thanks!Jonathan George

3 Answers

4
votes

Avoid using Variant data types, whenever possible.

Dim dartFile As String

That's a good declaration, dartFile is, after all, a String.

This returns True in the immediate pane, when you ESC out of the dialog:

?Application.GetOpenFilename() = "False"

Just make False, "False", and you're done. ;)

5
votes

The problem is that Application.GetOpenFilename returns a variant and you've declared your variable as a string. VBA then can't compare your string with a boolean type.

0
votes

Try:

Dim dartFile As as Variant