使用“。”时,Userform抛出错误。或“ - ”或“退格”

时间:2018-04-12 17:52:13

标签: excel vba excel-vba

你好我的Excel中的userform每当我尝试输入任何不是数字的东西时都会抛出错误,即“。”或“ - ”或如果我退回我的号码以清除该行。

我相信它是因为我将用户形态分配的变量定义为long。

这可以防止我输入负数或小数而不会抛出错误。

关于如何允许我的userform接受Long变量类型​​同时仍然允许我输入不是直接数字的其他字符的任何想法?

要清楚的是,在我操作用户形式之后,在将数字输入UF时会发生错误。

编辑:

此代码非常简单

Public LTB As Long

Public Sub LotTextBox_Change()

LTB = LotTextBox.Value

End Sub

错误消息是 - 运行时错误13 - 不匹配。

1 个答案:

答案 0 :(得分:0)

您遇到的问题是因为您试图将运行时String文本框中输入的内容存储到Long变量。

因此,如果您想键入-123,那么当您键入-时,您会在尝试将String-存储在一个时出现错误Long变量。

试试这个

Public LTB As Long

Private Sub LotTextBox_Change()
    On Error GoTo Whoa

    LTB = Val(LotTextBox.Value)

Whoa:
    'Debug.Print LTB
End Sub

这样做,它会尝试将文本框值存储到变量中,如果它不是正确的数据类型,它会正常退出。