varInput = Application.InputBox("Text", "Title", Type:=2)
If varInput = "False" Then
Exit Sub
End If
如果按下取消按钮,则返回值为“False”的字符串。但在德国设置的某台计算机上,我会得到“Falsch”!
应如何处理?
删除引号:
If varInput = False Then
在使用VarType(varInput) = vbBoolean
时,您还必须始终测试变量的类型为boolean:Application.InputBox
。
Dim varInput As Variant
varInput = Application.InputBox("Text", "Title", Type:=2)
If VarType(varInput) = vbBoolean And varInput = False Then
Exit Sub
End If
如果你只测试False
...
If varInput = False Then
...如果您输入0
或Falsch
(德语Excel)或False
(英语Excel),它也将退出sub。
这很好,因为如果与0
相比,一串"Falsch"
或"False"
(或False
)会自动转换为布尔值。但只有Cancel按钮返回一个真的布尔值。