接上讲内容)

在前面的两讲中我们讲了类和标准模块的内容,这一讲,我们来讲具体的运行过程.对于此时而言,团队已经组建完成,方针也已经确定,剩下的内容就将是团队的运作。 我们点击下面截图的运行按钮(把基础数据的值付给类,然后利用类完成查找的方案): 

vba 不能WorksheetFunction取得max vba不能取得类vlookup的属性_解决方案


执行过程的解析: ①   标准模块将在“L”列建立一个循环,循环的条件是Cells(i, "l") <> ""。 Do WhileCells(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 ②在上述循环中Set tes = Newmydyg 将赋值一个类tes,这个类是mydyg。 ③将tes的TJ属性进行赋值为L列单元格的值 ④给tes类的DYGA属性进行赋值,赋值的时候将遍历所有A列的单元格,将单元格赋给DYGA,但这不是目的,目的是当这个单元格作为一个参数传递到类的赋值语句时,会做一个判断但这个值等于TJ时将有变量rngsA,rngsB. RngsC,三个变量的赋值,这才是关键的,这三个变量是类三个属性值的“宿主”,代码如下;      PropertySet DYGA(rng As Range) If rng = TJThen          rngsA= Cells(rng.Row, 2)          rngsB= Cells(rng.Row, 3)          rngsC= Cells(rng.Row, 4) End If End Property ⑤ 主程序单元格值的回填。在上面的各项工作结束后。主程序的过程将利用上面的数据进行值的回填 Cells(i, "m") = tes.QSA Cells(i, "N") = tes.QSB Cells(i, "O") = tes.QSC 上述三条语句就是值的回填过程,将tes的三个属性值填给M,N,0三列的单元格中。 取得tes.QSA,是利用下面的GET语句获得,此过程非常的简单,就是将“宿主”rngsA中的值传递给QSA. Property Get QSA() QSA = rngsA End Property 取得tes.QSB,是利用下面的GET语句获得,此过程非常的简单,就是将“宿主”rngsB中的值传递给QSB. Property Get QSB() QSB = rngsB End Property 取得tes.QSC,是利用下面的GET语句获得,此过程非常的简单,就是将“宿主”rngsC中的值传递给QSC. Property Get QSC() QSC = rngsC End Property 经过上述的各个环节,我们需要的结果就实现了。看下面的运行结果:  

vba 不能WorksheetFunction取得max vba不能取得类vlookup的属性_VBA_02


  我们再次回顾一下上述利用类,实现我们目的的过程。 1 我们的目的是按照L列的值在A列中进行查找,找到后将对应的几个数组回填给之后的M,N,O列。  2 为了实现我们的目的,先搭建了一个mydyg类。这个类的作用是当我们传递给他一个单元格时,会做出判断,当是我们需要的指向时会给类的属性赋值。这个类是纯粹虚无的,只能给人以精神的指导,是一个“魂”。他需要借助一个实体的对象来实现。 3 在主程序中我们适时建立了一个这样的对象tes,将上述类的灵魂赋给这个对象,这时的tes就不再是灵魂了,而是可以为我们使用的具体对象了。当我们给这个对象赋给TJ值的时候就可以输出对应的我们需要的值了。   整个过程就是一个灵魂到肉身的转变,只有灵魂时不能完成任何的工作,只有具有了肉身才能完成相应的责任工作。 我们仍旧回到我们我们的目的,这种实现方法中在类内部依靠传递进来的单元格进行判断时,是否还有还有其他的方案呢?是的,在下一讲中我们继续这个话题的讲解。  

vba 不能WorksheetFunction取得max vba不能取得类vlookup的属性_VBA_03


随笔:在取代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人,暗夜中,悄声寻梦,盼却天明,怎无凭!   分享成果,随喜正能量