大家好,我们今天继续讲解类和类模块的知识,从这讲开始我们开始对各种实例的学习,在实例学习的过程中我们要加深对概念的理解,对于几个重要的概念,我们再次回顾一下。

1 类CLASS: 类是对象的"灵魂"。对象可以是任何事物,而类不会做任何事情,也不会占用内存,只有当类成为对象并使用Set语句和New关键字实例化为具体对象后,才能做事情并占用内存。

2 类的属性,用来描述类。有两种声明方案,一种是在类中直接声明,一种是用Property Let/Set/Get语句声明。

3 类的方法在类中公共的Sub和Function。

4 类模块类模块由属性和方法组成,类本身类似于名词;属性可以当作形容词,用来描述类;方法则为动词,执行操作。

5 类的实例化建立新的类对象。注意这个对象不一定是实际意义上的实体,但可以作为实体来对待。

6 声明类的事件:用Event进行声明,但只是声明。

7 声明类实例化对象变量WithEvents

对于上面的概念要理解,理解后我们要利用上面的知识点来处理我们实际遇到的问题了。

一 本讲的实例 利用类模块,完成文本框录入只能是数字的校验,如果录入的不是数字那么将被取消录入。

二 思路分析 在这个实例中,我们要完成对若干个文本框的校验,那么可以在窗体加载时把这些文本框设置成同一个类,然后让这个类共同响应一个类对象的事件,这个事件就是判断输入的值是否为数字。这样我们就可以达到目的了。

三 代码实现

1 先新建一个类mytext,在这个类中要声明一个类的对象变量,这个对象是用来响应事件的。

Public WithEvents Txtbox As MSForms.TextBox

Private Sub Txtbox_Change()

With CreateObject("vbscript.regexp")

.Global = True

.Pattern = "[^0-9.] "

If .test(Txtbox.Text) Then

Txtbox.Text = .Replace(Txtbox.Text, "")

End If

End With

End Sub

在上述代码中Txtbox是一个类对象的变量,这个变量要相应的是Txtbox_Change事件。

限制文本框输入的内容(限制文本框的输入)(1)

2 搭建一个窗体,上面有若干个文本框。同时录入代码

限制文本框输入的内容(限制文本框的输入)(2)

Dim Txt() As New mytext

Private Sub CommandButton1_Click()

End

End Sub

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

Private Sub UserForm_Terminate()

End

End Sub

限制文本框输入的内容(限制文本框的输入)(3)

上述代码中声明了一个类,同时把若干个文本框借助于动态数组,放到了我们期望的类对象中。这样在代码运行中就可以全部响应类的事件了。

由于篇幅的关系,代码的讲解和运行在下一讲。

今日内容回向:

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莫属!

分享成果,随喜正能量

,