excel - VBA:输入框和取消按钮

标签 excel vba inputbox

varInput = Application.InputBox("Text", "Title", Type:=2)
If varInput = "False" Then
    Exit Sub
End If

如果取消按钮被按下,返回值是一个带有“False”的字符串。 但是在某些具有德语设置的计算机上我会得到“Falsch”!

应该如何处理?

最佳答案

您还必须始终测试变量的类型是否为 bool 值: VarType(varInput) = vbBoolean当使用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 也会退出 sub或Falsch (德语 Excel)或 False (英文Excel)。

发生这种情况是因为一串 0"Falsch" (或 "False" )如果与 False 比较,会自动转换为 bool 值。但只有 Cancel 按钮返回 true bool 值。

关于excel - VBA:输入框和取消按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55453256/

相关文章:

excel - #NUM!用户定义函数错误

excel - 处理输入框取消选择范围的操作

vb.net - 如何更改 MS Access 2003 中输入框的大小

css - 在 Chrome 中设置 HTML5 数字输入(旋转框)的样式

vba - 如何将工作表(选项卡)名称与单独工作表中的范围匹配并将特定文本返回到每个工作表

excel - 从VBA中的日期中减去?

vba - 我怎样才能 "force"Excel正确计算分页符?

python - 字符串分割对单个字符串有效,但对 pandas 中的一系列字符串无效

vba - 我应该在退出子过程之前重新打开.CutCopyMode吗?

VBA - 如何将集合添加到集合的集合中