VBA:输入框和取消按钮

问题描述 投票:2回答:2
varInput = Application.InputBox("Text", "Title", Type:=2)
If varInput = "False" Then
    Exit Sub
End If

如果按下取消按钮,则返回值为“False”的字符串。但在德国设置的某台计算机上,我会得到“Falsch”!

应如何处理?

excel vba inputbox
2个回答
2
投票

删除引号:

If varInput = False Then

2
投票

在使用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

...如果您输入0Falsch(德语Excel)或False(英语Excel),它也将退出sub。

这很好,因为如果与0相比,一串"Falsch""False"(或False)会自动转换为布尔值。但只有Cancel按钮返回一个真的布尔值。

© www.soinside.com 2019 - 2024. All rights reserved.