Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VBA in Excel Run Time Error 13: Type Mismatch

Tags:

excel

vba

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.

like image 549
Jonathan George Avatar asked Oct 23 '14 14:10

Jonathan George


2 Answers

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. ;)

like image 149
Mathieu Guindon Avatar answered Oct 08 '22 10:10

Mathieu Guindon


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.

like image 39
Mr. Mascaro Avatar answered Oct 08 '22 11:10

Mr. Mascaro