我正在尝试解决用户未找到要打开的文件的情况:
Dim fn As String
fn = Application.GetOpenFilename("All Files,.", 1, "Select a file", , False)
If fn = False Then
Exit Sub
End If
当没有选择文件时,这就是我想要的。
但是当用户 选择文件时,此If语句会产生错误。谁能告诉我完成这个的正确方法呢?
答案 0 :(得分:3)
如果您查看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
答案 1 :(得分:2)
该函数不返回布尔值False
,而是返回字符串 "False"
,因为它会将函数中的变量强制转换为变量类型,因此您的测试应该是是
If fn = "False" Then
(改变了解释 - 谢谢@SiddharthRout)
答案 2 :(得分:1)
更改
If fn = False Then
到
If CStr(fn) = "False" Then