ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: nmcfbgttyl

[求助] VB中不是控件数据,多个文本框设置,代码简化

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-1-9 19:08 | 显示全部楼层
nmcfbgttyl 发表于 2013-1-9 18:57
完全符合我的想法,谢谢赵老师!
只所以这么晚才回复,是因为前段时间出了车祸,白天在法院打官司了,已 ...
一共120多个文本框,不是控件组,怎样设置从第60个至120个文本框只能输入数字和小数点,且只能输入一个小数点。

我疏忽了一个问题,不是所有的文本框都受这个限制,应该是60——120,共61个文本框,现予以纠正:
  1. Dim Txt(60 To 120) As New clsTxt

  2. Private Sub Form_Load() '前提文本框名Text61、Text62、……Text120
  3.     Dim i As Integer
  4.     For i = 60 To 120
  5.         Set Txt(i).Txtbox = Me.Controls("Text" & i)
  6.     Next
  7. End Sub
复制代码
窗体中没有画出这么多文本框,就不上传附件了

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-9 19:40 | 显示全部楼层
zhaogang1960 发表于 2013-1-9 19:08
我疏忽了一个问题,不是所有的文本框都受这个限制,应该是60——120,共61个文本框,现予以纠正:窗体中 ...

再次谢谢您,
我发现这个问题后自己改过了,没和您说,没想到您这么细心、耐心,又改了一次,谢谢赵老师!
这段时间要不是出了好多的事,一定向您学了很多东西,这是我的损失!

TA的精华主题

TA的得分主题

发表于 2014-5-2 15:34 | 显示全部楼层
zhaogang1960 发表于 2013-1-9 19:08
我疏忽了一个问题,不是所有的文本框都受这个限制,应该是60——120,共61个文本框,现予以纠正:窗体中 ...

赵老师,我今天遇到了一个问题与楼主的差不多,只有一点不同,那就是,这些文本框是存在于某个工作表中而不是用户窗体中的。就因为这点不同,让我大费周折也无法解决,所以想请您帮忙看看!谢谢!

TA的精华主题

TA的得分主题

发表于 2014-5-2 15:36 | 显示全部楼层
VBA万岁 发表于 2014-5-2 15:34
赵老师,我今天遇到了一个问题与楼主的差不多,只有一点不同,那就是,这些文本框是存在于某个工作表中而 ...

http://club.excelhome.net/forum.php?mod=viewthread&tid=1117745&page=1#pid7611782这个问题的出处见以下链接:

TA的精华主题

TA的得分主题

发表于 2014-5-2 15:42 | 显示全部楼层
VBA万岁 发表于 2014-5-2 15:36
http://club.excelhome.net/forum.php?mod=viewthread&tid=1117745&page=1#pid7611782这个问题的出处见以 ...

附件如下:
如何用类限制工作表中的多个文本框只能输入数字.rar (9.98 KB, 下载次数: 28)

TA的精华主题

TA的得分主题

发表于 2014-5-2 16:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
VBA万岁 发表于 2014-5-2 15:42
附件如下:

类:
  1. Public WithEvents Txtbox As MSForms.TextBox

  2. Private Sub Txtbox_Change()
  3.     Dim s As String, t As String, a, i As Integer
  4.     s = Txtbox.Text
  5.     If InStr(s, ".") Then
  6.         If Left(s, 1) = "." Then
  7.             Txtbox.Text = Mid(s, 2)
  8.         Else
  9.             a = Split(s, ".")
  10.             If UBound(a) > 1 Then
  11.                 t = a(0) & "."
  12.                 For i = 1 To UBound(a)
  13.                     t = t & a(i)
  14.                 Next
  15.                 Txtbox.Text = t
  16.             End If
  17.         End If
  18.     End If
  19.     With CreateObject("vbscript.regexp")
  20.         .Global = True
  21.         .Pattern = "[^0-9.]+"
  22.         If .test(s) Then
  23.             Txtbox.Text = .Replace(s, "")
  24.         End If
  25.     End With
  26.     Txtbox.SelStart = Len(s)
  27. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2014-5-2 16:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sheet1:
  1. Dim Txt() As New clsTxt

  2. Private Sub Worksheet_Activate()
  3.     Call clsStart
  4. End Sub

  5. Private Sub Worksheet_Deactivate()
  6.     Call clsEnd
  7. End Sub

  8. Sub clsStart()
  9.     Dim tb As OLEObject, arr(), i%
  10.     For Each tb In Me.OLEObjects
  11.         If TypeName(tb.Object) = "TextBox" Then
  12.             i = i + 1
  13.             ReDim Preserve Txt(1 To i)
  14.             Set Txt(i).Txtbox = tb.Object
  15.         End If
  16.     Next
  17. End Sub

  18. Sub clsEnd()
  19.     Erase Txt
  20. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2014-5-2 16:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ThisWorkbook:
  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2.     Call Sheet1.clsEnd
  3. End Sub

  4. Private Sub Workbook_Open()
  5.     Call Sheet1.clsStart
  6. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2014-5-2 16:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请看附件
如何用类限制工作表中的多个文本框只能输入数字.rar (17.86 KB, 下载次数: 47)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-5-2 16:20 | 显示全部楼层
zhaogang1960 发表于 2014-5-2 16:09
请看附件

测试通过,谢谢赵老师!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 22:37 , Processed in 0.047541 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表