作者:绿色风
分类:
时间:2022-08-17
浏览:123
楼主 wise |
Q: 如何用VBA正则表达式校验登录名及用户姓名? 登陆名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串 校验用户姓名:只能输入1-30个以字母开头的字串. A:ALT+F11→插入模块→分别输入以下代码: 登陆名:
- Sub MyReg()
- Dim reg As Object
- Dim str1 As String
- Set reg = CreateObject("vbscript.regexp")
- str1 = InputBox("请输入登陆名:", "输入", 1)
- reg.Pattern = "^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$"
- MsgBox reg.test(str1)
- End Sub
用户姓名:
- Sub MyRegName()
- Dim reg As Object
- Dim str1 As String
- Set reg = CreateObject("vbscript.regexp")
- str1 = InputBox("请输入用户姓名:", "输入", 1)
- reg.Pattern = "^[a-zA-Z]{1,30}$"
- MsgBox reg.test(str1)
- End Sub
|
2楼 DJ_Soo |
登录名的应该可以简化一下吧?- reg.Pattern = "^[a-zA-Z]{1}[a-zA-Z0-9._]{4,19}$"
我写的对不? 应该还可以简化,\w代表的是数字字母和下划线,这样的话再多加一个\.也算是简化.是两种简化方式,这种要用"|"
|
3楼 sam.tan |
Wise版主: 能否在输入错误的“用户姓名”或“登陆名”时自动退出Excel呢? (意思是当别人收到我的excel文档,必须要求他输入我的、正确的“用户姓名”或“登陆名”) 不知是否天方夜谭?谢谢! |
4楼 DJ_Soo |
再简化 reg.Pattern = "^[a-zA-Z]{1}[\w.]{4,19}$" |
5楼 sam.tan |
Wise版主: 我的想法是否不能实现啊?谢谢您! |
6楼 bluexuemei |
简化得好! |
7楼 osvxa |
谢了.学习中,先顶 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一