如何要求用户只在用户窗体中输入一个五位数字?

Posted

技术标签:

【中文标题】如何要求用户只在用户窗体中输入一个五位数字?【英文标题】:How to demand from User to type a five digit number only in UserForm? 【发布时间】:2020-06-15 18:46:19 【问题描述】:

我有代码需要用户填写数据,并且数据应该只有一个五位数,或者用户应该得到一个 msgBox“只能是数字”或类似的东西。

如果用户在 TextBox1 (UserForm) 中输入一个五位数字,则该值将转到特定单元格中的 Excel 工作表。这就是代码要做的想法。

我的代码正在检查用户是否在单元格中输入数字,但不要求输入格式,例如“00000”。

用户可以输入一个三位数字,代码将运行。

Private Sub TextBox1_Change()

If Not IsNumeric(TextBox1.Value) = Format(TextBox1.Value, "") = True Or TextBox1.Value = vbNullString Then
    MsgBox "Invalid data type"

Else: TextBox1.Value = Format(TextBox1.Value, "")
    Sheets("POVRATNICE").Range("B2").Value = TextBox1.Value
    
End If

End Sub

【问题讨论】:

【参考方案1】:

您应该考虑添加“textbox1 的长度不等于 5 则...”

If Not IsNumeric(TextBox1.Value) = Format(TextBox1.Value, "") = True Or TextBox1.Value = vbNullString Or len(TextBox1.value) <> 5 Then

如果文本框不是 5 个字符,那么您会收到消息...

【讨论】:

这将在他们每次输入字符时触发,因此前 4 个字符会在他们尝试输入 5 时弹出一个消息框。 那行。非常感谢!所以这是最终代码: Private Sub TextBox1_Change() If Not IsNumeric(TextBox1.Value) = Format(TextBox1.Value, "") = True Or TextBox1.Value = vbNullString Or Len(TextBox1.Value) 5 Then Else: TextBox1.Value = Format(TextBox1.Value, "") Sheets("POVRATNICE").Range("B2").Value = TextBox1.Value End If

以上是关于如何要求用户只在用户窗体中输入一个五位数字?的主要内容,如果未能解决你的问题,请参考以下文章

来自用户窗体的自定义数字格式

C#:在窗体中放了多个文本框,我想要在里面输入数字,但要规定它不能超出范围,若超出范围,那就要提示

怎么实现在ASP.NET点击一个按钮就弹出要用户输入(含ASP.NET组件)的窗体?

EnterKey 在 VBA 用户窗体中按下按钮

题目:从键盘输入一个不超过五位的整数,判断它是否为回文数,例如12321是一个回文数

用c#编写猜数游戏要求用户在文本框中输入1到10之间的一个数字。然后单击[猜猜]按钮产生一个随机数字,用户