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