excel vba 将一个文本框TEXTBOX1限定只能输入数字,如果输入其他汉字或者字母提示,输入错误,请输入数字

2025-04-05 09:46:31
推荐回答(4个)
回答1:

1、首先在开发工具中打开VBA编辑器。

2、在单元格区域当中输入一些内容作为例子。

3、在VBA编辑器中插入模块。

4、在模块当中输入如下代码,然后运行。

5、用快捷键F5运行窗体,分别在三个文本框中输入字符,可以发现“手机号”文本框中除了数字以外所有汉字和字母及“!”、“?”、“*”等符号已被严格限制。

回答2:

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

If Not IsNumeric(TextBox1) Then

MsgBox "不是数字!"

Cancel = True

End If

End Sub

Private Sub CommandButton1_Click()

Dim i As Double

i = Format(Replace(TextBox1.Value, "。", "."), "0.00")

Sheet2.Range("A1").Value = i

End Sub

此代码不管textbox1输入的是句号还是点,都将变成点。四舍五入保留两位小数。

扩展资料:

AcceptsReturn 指示在多行TextBox组件中按ENTER键时,是在组件中创建一行新文本还是激活窗体的默认按钮。

AcceptsTab 该值指示在多行文本框组件中按TAB键时,是否在组件中键入一个TAB字符,而不是按选项卡的顺序将焦点移动到下一个组件。

AllowDrop 获取或设置一个值,该值指示组件是否可以接受用户拖放到它上面的数据。

Anchor 获取或设置组件的哪些边缘锚定到其容器边缘。

BackColor 获取或设置组件的背景色。

BackgroundImage 获取或设置在组件中显示的背景图像。

参考资料来源:百度百科-textbox

回答3:

怎麼不够了?你的完整代码贴出来看看?

试试:

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    If Not IsNumeric(TextBox1) Then
        MsgBox "不是数字!"
        Cancel = True
    End If
End Sub

回答4:

不能用那些事件,要判断按键事件:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < Asc(0) Or KeyAscii < Asc(9) Then MsgBox "不是数字!"
End Sub