限制只能输⼊数字_VBA限制⽂本框的输⼊,使其只能输⼊数
值(下)
(接上讲)
四 代码的运⾏过程及讲解
1 窗体⽂件的构建
Dim Txt() As New mytext
Private Sub UserForm_Initialize()
For Each myctl In Me.Controls
If TypeName(myctl) = "TextBox" Then
m = m + 1
ReDim Preserve Txt(1 To m)
Set Txt(m).Txtbox = myctl
End If
Next
End Sub
①Dim Txt() As New mytext这句代码定义了⼀个动态数组变量为类
②在窗体的构建中,要对每⼀个控件进⾏判断,如果是"TextBox"类型的控件,那么就将此控件定义为Txt(m).Txtbox,⽽Txt(m).Txtbox 中 txt(m) 定义为mytext类的对象,txtbox是这个对象的事件。Set Txt(m).Txtbox = myctl就是让myctl控件享有我们定义对象的事件。
③ReDim Preserve Txt(1 To m),这句是⼀个动态数组的重新定义过程,当m值增加后,在不破坏原数据的基础上要重新定义这个动态数组。增加了⼀个类的对象。
2 当我们在⽂本框录⼊数据时,由于⽂本框是实例化类后的对象,所以这个对象将要响应mytext类的Txtbox事件。
3 在Txtbox_Change事件中。我们⽤了正则函数来实现控制录⼊内容的需求。
代码如下:
With CreateObject("p")
.Global = True
.Pattern = "[^0-9.]+"
If .test(Txtbox.Text) Then
Txtbox.Text = .Replace(Txtbox.Text, "")
End If
End With
①上述代码中引⽤CreateObject("p").然后就可以利⽤正则运算了。
正则表达式,⼜称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算机科学的⼀个常⽤概念。正则表达式通常被⽤来检索、替换那些符合某个模式(规则)的⽂本。
RegExp对象是VBScript中⽤于提供简单的正则表达式⽀持的对象。VBScript中所有和正则表达式有关的属性和⽅法都与这个对象有关联。
这个对象有三个属性和三个⽅法,
属性:Global、IgnoreCase、Pattern
⽅法:Execute、Replace、Test
这讲中仅对本讲⽤到的属性和⽅法做讲解,其他的还请有兴趣的朋友阅读相关的资料:
a Global属性:负责设置或返回⼀个Boolean值,指明模式是匹配整个字符串中所有与之相符的地⽅还是只匹配第⼀次出现的地⽅。如果Global属性的值是True,那就会对整个字符串进⾏查;否则就不会。默认值是False.
b Pattern属性:设置或返回⽤于搜索的正则表达
c Replace⽅法:这个⽅法⽤于替换在正则表达式搜索中到的⽂本代码
object.Replace(string1, string2)
vba做excel窗体录入教程对象只能是RegExp对象
string1:这是发⽣替换的⽂本字符串,必需的
string2:这是⽤于替换的⽂本字符串,必需的
Replace⽅法返回⼀份RegExp.Pattern被string2替换后的string1的副本。如果字符串中没有发⽣匹配,那么就会返回没有任何改变的string1。
d Test⽅法Test⽅法对字符串执⾏正则表达式搜索,并返回⼀个布尔值说明匹配是否成功代码
object.Test(string)
object : 是RegExp对象
string:正则表达式搜索的执⾏对象,必需的
如果匹配成功,Test⽅法返回True;否则返回False。这适⽤于判断字符串是否含有某个模式。
②Txtbox.Text = .Replace(Txtbox.Text, "")
代码在执⾏过程中要对录⼊的值进⾏判断如果不是数字,就⽤空来代替
4 当点击推出按钮或者是关闭窗⼝时就直接END,虽然⽐较武断,但很实⽤。
五 下⾯我们看代码的运⾏情况:
今⽇内容回向:
1 如何理解正则函数?
2 在窗体的构建构成中,执⾏了哪些动作?
--------------------------------------------------------------------------------------------------------------------------------
学习有⽤的东西需要⼀种不知⾜的精神,知道什么是⾃⼰所需要的,不要蜷缩在⼀⼩块⾃认为天堂的世界⾥。待到暮年时再去做⾃欺欺⼈的⾔论。要努⼒提⾼⾃⼰,有⼀颗充满⽣机的⼼灵,把握现在,这才是进取。越是有意义的事情,困难会越多。愿⼒决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。茶,满也好,少也好,不要计较;浓也好,淡也好,其中⾃有值得品的味道。去感悟真实的时间,静下⼼,多学习,积累福报。⽽不是天天混⽇⼦,也不是天天熬⽇⼦。在后疫情更加严峻的存量残杀世界中,为⾃⼰的⽣存进⾏知识的储备,特别是新知识的储备。
VBA是利⽤Office实现⾃⼰⼩型办公⾃动化的有效⼿段,我根据⾃⼰20多年的VBA实际利⽤经验,现在推出了五部VBA教程。第⼀:VBA 代码解决⽅案,是VBA中各个知识点的讲解,覆盖绝⼤多数的VBA知识点;第⼆:VBA数据库解决⽅案,是数据处理的专业利器,详细的介绍了利⽤ADO连接ACCDB和EXCEL的⽅法和实例操作。第三:VBA数组与字典解决⽅案,讲解VBA中的数组和字典的利⽤。字典是VBA代码⽔平提⾼的⼿段,值得深⼊的学习。第四:VBA代码解决⽅案之视频,是专门⾯向初学者的视频讲解,可以快速⼊门,更快的掌握这门技能。第五:VBA中类的解读和利⽤,是⼀部⾼级教程,对于⾃⼰理论的提⾼很有益处。上述教程可以根据1,3,2,5或者是4,3,2,5的顺序逐渐深⼊的学习和利⽤。
在取代OFFICE新的办公软件没有到来之前,谁能在数据处理⽅⾯做到极致,谁就是王者。其中登峰⾄极的技能⾮VBA莫属!
分享成果,随喜正能量
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论