(接上讲内容)

在上一讲中,我们讲了实现数据查找过程中类模块部分,今日我们继续讲解标准模块的代码。

根据上一讲的讲解,我们可以分析出,在标准模块中,要实现将查找区域的L列单元格的值传递给类模块,同时要实现显示这个单元格的其他属性,并将这些属性的值填到M,N,O列。下面我们看代码:

Sub mynzclass23_27_1()

Dim tes As mydyg

i = 1

Do While Cells(i, "l") <> ""

Set tes = New mydyg

tes.TJ = Cells(i, "L")

For Each rn In Range("a1", Cells(Rows.Count, 1).End(xlUp))

Set tes.DYGA = rn

Next

Cells(i, "m") = tes.QSA

Cells(i, "N") = tes.QSB

Cells(i, "O") = tes.QSC

i = i 1

Set tes = Nothing

Loop

End Sub

上面的过程代码内容比较少,但实现的功能还是比较多的,我们来讲解一下代码的执行过程:

在代码的执行过程中首先要声明tes为我们新命名的类mydyg.在i列建立一个循环,对于其中的每个单元格,首先将这个单元格关联上类mydyg的DYGA 属性,在关联的同时,在类模块中将执行下面的属性赋值过程:

Property Set DYGA(rng As Range)

If rng = TJ Then

rngsA = Cells(rng.Row, 2)

rngsB = Cells(rng.Row, 3)

rngsC = Cells(rng.Row, 4)

End If

End Property

由于此时TJ属性是已经赋值过的是Cells(i, "L")的值,这个时候这个值判断将作为一个判断的依据,将给出rngsA\ rngsB\ rngsC三个值,这三个值在类模块中作为变量进行存储。

当代码执行到

Cells(i, "m") = tes.QSA

Cells(i, "N") = tes.QSB

Cells(i, "O") = tes.QSC

的时候,将显示tes的三个属性QSA,QSB,QSC ,是如何显示的呢?当代码执行到tes.QSA的时候将读取属性的值,读取属性值的时候将执行下面的代码:Property Get QSA()

QSA = rngsA

End Property

代码的意思是将QSA = rngsA也就是说rngsA将起到一个中间变量的作用,就是存储QSA的属性值。

什么是我们获取对象感的客观依据(对象有了类之魂)(1)

在上面两讲中,我讲了类模块及标准模块的代码作用。两个模块相互关联,构成了一个整体,类模块中完成了属性的定义及赋值、提取数值的动作,在标准模块中,将对象关联上类,让对象具有类的属性。

上述每个单元格:

For Each rn In Range("a1", Cells(rows.Count, 1).End(xlUp))

Set tes.DYGA = rn

Next

单元格还是单元格,但赋予类的性质后,就会平添了一种魂的使命。原先的"猪悟能"就个体而言还是这个个体,但"唐三藏"大师给他赋值猪八戒后,就有了取经的"魂"。在个魂是赋值后的新生,虽然个体没有改变,还是那个实体,但"魂"已经发生了本质的改变。这就是神奇的类。

什么是我们获取对象感的客观依据(对象有了类之魂)(2)

随笔:在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!学习VBA是个过程,如太白诗云:众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

"水善利万物而不争",绵绵密密,微则无声,巨则汹涌。学习亦如此,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时再去做自欺欺人的言论。要努力提高自己,有一颗充满生机的心灵,把握现在,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。茶,满也好,少也好,不要计较;浓也好,淡也好,其中自有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。在后疫情更加严峻的存量残杀世界中,为自己的生存进行知识的储备,特别是新知识的储备。学习时微而无声,利用时则巨则汹涌。

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的顺序逐渐深入的学习和利用。

最后将一阙词送给致力于VBA学习的朋友:浮云掠过,暗语无声,唯有清风,惊了梦中啼莺。望星,疏移北斗,奈将往事雁同行。阡陌人,昏灯明暗,忍顾长亭,多少VBA人,暗夜中,悄声寻梦,盼却天明,怎无凭!

分享成果,随喜正能量

,