Excel VBA打开文件(error handling)

我试图说明一个用户没有find要打开的文件的情况:

Dim fn As String fn = Application.GetOpenFilename("All Files,.", 1, "Select a file", , False) If fn = False Then Exit Sub End If 

这就是我没有select文件时所需要的。

但是,当用户select一个文件时,这个If语句会创build一个错误。 任何人都可以告诉我正确的方法来完成这个?

该函数不会返回布尔值False ,而是string "False" ,因为它会将variables从函数转换为variablestypes,所以您的testing应该是

 If fn = "False" Then 

(改变的解释 – 谢谢@SiddharthRout)

如果您检查Excel的内置帮助,您将注意到Application.GetOpenFilename返回一个变体。 所以你所要做的就是将fn声明为Variant

 Sub Sample() Dim fn As Variant fn = Application.GetOpenFilename("All Files,.", 1, "Select a file", , False) If fn = False Then Exit Sub MsgBox fn End Sub 

更改

 If fn = False Then 

 If CStr(fn) = "False" Then