ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何限制多个TEXTBOX的输入,使其只能输入数值?

如何限制多个TEXTBOX的输入,使其只能输入数值?

作者:绿色风 分类: 时间:2022-08-17 浏览:135
楼主
liuguansky
Q:现在有多个ACTIVEx文本框控件,想实现它们全部都只能输入数字和最多一个小数点,即只能输入数值,如何编写代码?[因为不知道有多少个TEXTBOX,不能一个一个去写事件代码]
A;用如下代码可以实现:
类模块代码:
  1. Private WithEvents t As MSForms.TextBox
  2. Private Sub t_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  3. '限制只可以输入数字,不可输入字母和其他符号
  4. Select Case KeyAscii
  5. Case 48 To 57
  6. Case 46
  7.     If InStr(1, t.Text, ".") Then
  8.         KeyAscii = 0
  9.     End If
  10. Case Else
  11.     KeyAscii = 0
  12. End Select
  13. End Sub

  14. Private Sub t_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  15. '限制中文输入
  16. With CreateObject("vbscript.regexp")
  17.     .Global = True
  18.     .Pattern = "[^0-9.]+"
  19.     If .test(t.Text) Then
  20.         t.Text = .Replace(t.Text, "")
  21.     End If
  22. End With
  23. End Sub

  24. Public Sub tk(i As OLEObject)
  25. '获取oleboject对象
  26. Set t = i.Object
  27. End Sub
按钮代码:
  1. Dim Ar(1 To 100) As TT
  2. '定义数组类
  3. Sub justest()
  4. Dim j As OLEObject, K As Byte
  5. For Each j In Sheet1.OLEObjects
  6.     If TypeName(j.Object) = "TextBox" Then
  7.         '如果为TEXTBOX控件
  8.         j.Object.Text = ""
  9.         '清空文本框
  10.         K = K + 1: Set Ar(K) = New TT
  11.         '同时创建类实体
  12.         Ar(K).tk j
  13.         '给类实体赋值,激活事件。
  14.     End If
  15. Next
  16. End Sub
2楼
JOYARK1958
謝謝提供學習下載中
3楼
水星钓鱼
学习
4楼
398829134
楼主厉害,学习了
5楼
icenotcool

6楼
wumin88838
相关资料需要多研究下。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap