本帖最后由 hyefeifei 于 2013-11-6 21:11 编辑
接上回:
经常看到有人在属性(Propertylet|set|get xxx)里写大量判断计算的代码,其实这不是一种好习惯,一定要把复杂的代码写在方法(function|sub)里,使属性的值或直接由外部赋给,或由方法计算而来,这样,调用一次方法,属性的值就确定下来了,以后频繁调用属性,就不会重复计算了。但在修改: Public Property GetDataType() As String ……
End Property
上面这段代码之前,先暂停一下,说点简单轻松的,休息一下脑子,我们来了解一下枚举常量(enum)。
啥是枚举常量呢?假如,我们在程序中经常用到几个数值(必须是长整型long的),那么,我们一定不要在程序中哪句用到这个值,就把它写在哪句里,如果这样的话,经常用到三个值,如果分别写在程序四十个地方,一旦要改起来,就会痛苦不堪了,经常做的是定义三个常量,这就使维护代码非常容易,但我们根据需要及方便程序,有时可以把这三个常量弄成一组,取个名字,这就是枚举类型了。它的语法是:
Enum vcol
3
4
5
End enum
(以上假如我们经常用红绿蓝三种颜色)
但这还不够,枚举常量必须有一个名字,所以正确的写法是:
Enum vcol ‘vcol是枚举类型的名字
警告=3
表扬=4
正常=5
End enum
当我们定义了这个枚举类型后,就可以使用它了。
使用枚举类型:
Sub test()
Dim colorCell As Vcol
Dim rng As Range, r As Range
假如a2:d10区域有1-100的数值
Setrng = Sheets("sheet2").Range("a2:d10") For Each r In rng
If r > 80 Then
colorCell = 表扬
ElseIf r < 60 Then
colorCell = 警告
Else
colorCell = 正常
End If
r.Interior.ColorIndex = colorCell
Next
End Sub
这段程序,如果我们要表扬由绿色换成黄色,直接在枚举变量的定义中,把表扬的值变为6就可以了:表扬=6
枚举类型的定义中=号及其右边都可省略,例如,可以如此定义:
Enum vcol ‘vcol是枚举类型的名字
警告
表扬
正常
End enum
这样定义后,系统默认为0,1,2
也就是:
Enum vcol
警告=0
表扬=1
正常=2
End enum
如果我们不想从零开始,只要数值是连续的,就可以只显式地定义第一个值,后面默认依次加1,可以不写,如
Enum vcol ‘vcol是枚举类型的名字
警告=10
表扬
正常
End enum
这与下面代码是等效的:
Enum vcol ‘vcol是枚举类型的名字
警告=10
表扬=11
正常=12
End enum
枚举类型就说到这里吧,再要细了解,就按下F1吧,不过,随着以后用的多了,就会熟悉了,下面我们将在类模块中应用枚举变量,同时不要忘了,把复杂的判断计算移到方法里,不过今天就到此为止吧,容待后续。
不过结束之前,再建议一下,就是虽然function 和sub都可用做方法,但使用的时候,尽量用function,因为它除了可以返回一个值外,其他都和sub一样,额外多返回一条信息,何乐而不为呢?
到此为止的代码,做了一个文件,懒惰的朋友可以下载参照。
类_1.rar
(17.88 KB, 下载次数: 181)
|