VBA中类的解读及应用第二十讲:利用类方法,判断任意单元格的类型-3

VBA语言専攻 2025-02-04 17:04:18

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。

类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA中类的解读及应用第二十讲:利用类方法,判断任意单元格的类型-3

【分享成果,随喜正能量】喝茶是一项轻松愉快,很简单的事,先把水烧开,再加入茶叶,然后用适当的方式来喝,就是这么简单的动作,一种单纯的生活方式。。

第二十讲 利用类方法,判断任意单元格的类型-3

由于内容较多,为了让大家慢慢地消化,讲得较慢。今天这讲继续。

5 类MYCTPE的构建,CellType属性和Ctype属性

1) 下面是类MYCTPE的另一个属性CellType, 这个是什么属性呢?我们看看代码的内容:

Property Get CellType() As MyCellType

CellType = TT

End Property

代码截图:

代码解释:上面代码定义了CellType,这是一个只读的属性,只读,也就是说没有SET过程。我们首先找一找这个用于记录这个属性的变量,很显然是TT, 在读属性的时候,将把这个TT值传递给CellType。 那么没有SET过程,这个TT是从哪里来了?别急,我们看下面MYCTPE类的另一个属性CType。

2)MYCTPE类的另一个属性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

代码的截图:

这个属性也是一个只读的属性,我们仍是先要找到这个用于存储这个属性值的变量,这个变量是哪个呢? 不是一个,而是一组:T1,T2,T3,T4中的一个,每个值对应了一个不同的属性返回值。

在实际利用中属性的值只有一个,用四个值中的哪一个呢?这里利用了一个select, end select 语句,由于T1,T2,T3,T4 是枚举变量TT的一个值,当点击确定了单元格时,这个唯一的TT将被确认,从而返回一个唯一的属性返回值。那么是如何确定TT的值呢?这是利用了下面的方法。

6 类MYCTPE方法的构建

1) 对方法的理解

下面我看PD方法是如何确认TT值的?我们先复习一下什么是方法:

方法:对象自身的动作就是方法。我们理解一下:首先要求是对象,或者绑定对象;其次是对象自身的动作。

2) PD方法的实现

我们来看看下面的代码:

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

代码截图:

这是一个PD的方法,对象是什么呢?是绑定了类的单元格对象,什么动作呢?当是空值的时候返回TT=T1,当是公式的时候返回TT=T2,等等。

通过这个方法就给TT进行了唯一的赋值。

好了,就讲到这里,由于内容比较枯燥,大家要注意跟紧进度。

本讲内容参考程序文件:VBA-CLASS(1-28).xlsm

分享成果,随喜正能量

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

0 阅读:5