ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求教,VBA实现窗体文本框输入的数值首位不为0,且小数点后只能输入两位

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-1-28 19:49 | 显示全部楼层

首位是0,要排除0.*这种,这种是有效的

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-1-28 20:13 | 显示全部楼层

Private Sub TextBox1_Change()
    x = TextBox1.Value
    If x Like "0#*" Then
        MsgBox "首位输入了0"
        TextBox1.Value = mid(x, 2)
    ElseIf x Like "*.##?" Then
        MsgBox "数字小数位只可输入2位"
        TextBox1.Value = Left(x, Len(x) - 1)
    End If
   
End Sub

TA的精华主题

TA的得分主题

发表于 2023-1-28 20:14 | 显示全部楼层

Private Sub TextBox1_Change()
    x = TextBox1.Value
    If x Like "0#*" Then
        MsgBox "首位输入了0"
        TextBox1.Value = mid(x, 2)
    ElseIf x Like "*.##?" Then
        MsgBox "数字小数位只可输入2位"
        TextBox1.Value = Left(x, Len(x) - 1)
    End If
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-28 21:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学习了,受教了,感谢

TA的精华主题

TA的得分主题

发表于 2023-1-29 00:45 | 显示全部楼层
一輸入首位0, 即提出訊息, 不會有機會再輸入第2個數字,
If x Like "0#*" Then...輸入00提出訊息, 去掉首0, 還是留了一個0

ElseIf x Like "*.##?" Then...如果輸入2.2.3 或 2.3A 就不會有訊息

若是只能輸入數字及小數點(2位數), 才須其它判斷~~

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-1 11:26 | 显示全部楼层
准提部林 发表于 2023-1-29 00:45
一輸入首位0, 即提出訊息, 不會有機會再輸入第2個數字,
If x Like "0#*" Then...輸入00提出訊息, 去掉首0 ...

值得参考的建议

TA的精华主题

TA的得分主题

发表于 2023-2-1 16:52 | 显示全部楼层
laterite 发表于 2023-2-1 11:26
值得参考的建议

Private Sub TextBox1_Change()
Dim X$, V%, S%
X = TextBox1.Text: V = Len(X)
If Not Right(X, 1) Like "[0-9.]" Then S = V
If X Like "*.##?" Then S = V
If InStr(".0", Left(X, 1)) Then S = 1
If S > 0 Then TextBox1 = Left(X, S - 1)
End Sub

反正輸入不符合的, 都會自動調整, 那msgbox多餘

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-1 18:34 | 显示全部楼层
准提部林 发表于 2023-2-1 16:52
Private Sub TextBox1_Change()
Dim X$, V%, S%
X = TextBox1.Text: V = Len(X)

好的,非常感谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 13:19 , Processed in 0.037401 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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