《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。
类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA中类的解读及应用第二十二讲:利用类方法,判断任意单元格的类型-5
【分享成果,随喜正能量103】一百次的好,只要有一次不好,别人就会抹杀你所有的付出,100-1=0,就是这么现实!只是因为1的差,就否定了99的好,人都是贪得无厌的,所以啊,不要过分的善良!做好自己就行,剩下的交给良心!在喜欢你的人那里,去热爱生活;在不喜欢你的人那里,去看清世界。。
第二十二讲 利用类方法,判断任意单元格的类型-5
在讲解了类模块及标准模块的代码后,我们今日的内容将讲解代码的运行过程.
9 代码的执行过程
1) 在上述界面中,我们点击C5单元格.这个时候我们看看代码的运行:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim MyCell As MyCTYPE
If Range("A1") = "QQ" Then
Set MyCell = New MyCTYPE
Set MyCell.Cell = ActiveCell
MyCell.PD
MsgBox MyCell.CType
'MsgBox MyCell.Cell
'MsgBox MyCell.CellType
End If
End Sub
2) 在上述语句中要先执行判断预计, If Range("A1") = "QQ" Then这个时候的A1单元格是空值,那么不会有任何的动作.
3) 好,我们在A1单元格中录入”QQ”:
4) 再次点击C5单元格,这个时候ActiveCell为C5,Set MyCell.Cell = ActiveCell建立了关联后;CELL 属性是可以读和写的:
Property Set Cell(ByRef rngCell As Excel.Range)
Set mrng = rngCell
End Property
Property Get Cell() As Excel.Range
Set Cell = mrng
End Property
此时把C5这个单元格就赋值给了mrng变量。
5) 当Worksheet_SelectionChange事件执行到MyCell.PD这个方法时,在类模块中执行判断,。这个时候C5单元格的值是1,
Public Sub PD()
If IsEmpty(mrng) Then
TT = T1
ElseIf mrng.HasFormula Then
TT = T2
ElseIf IsNumeric(mrng.Formula) Then
TT = T3
Else
TT = T4
End If
End Sub
这个时候C5单元格的值是1,是数字会返回TT=2.
10 代码的执行效果
6) Worksheet_SelectionChange事件继续执行MsgBox MyCell.CType
会用到MyCell的CType属性,在类模块代码中CType属性是执行下面的代码:
Property Get CType() As String
Select Case TT
Case T1
CType = "空值"
Case T2
CType = "公式"
Case T3
CType = "数值"
Case T4
CType = "其他"
End Select
End Property
这个时候要对枚举TT进行一个选择,看看枚举的变量中哪个被赋值.刚才已经给TT赋值为2,那么就是执行反馈:
Case T3
CType = "数值"
CType的属性值为"数值",于是弹出一个对话框:
这就是整个的过程。
小结:佛主下达了取经的指令,观音菩萨完成了团队的组件,把佛主的指令落实到了取经的团队,整个团队的组建是有灵魂和组织目的及方针的,在整个团队的团结协作下,完成取经的整个过程。
我们从类的构建开始,到类与对象的关联,当点击单元格,到弹出对话框的整个动作。一切的工作都是类的灵魂的重现。都是按照组建类的目的来实施。
细心的朋友会留意到,类的一个属性CellType在整个工程中,我并没有用到,为什么要还要建立这个属性呢?其实这是中间环节的测试,通过这个属性的设置,在测试代码的时候可以轻松的提取TT值。可以把这个属性去掉是没有任何问题的。也是对取经团队的考核吧,大家可否还记得二师兄被吊在树上的画面呢?这也是测试。
本讲内容参考程序文件:VBA-CLASS(1-28).xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: