Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2317|回复: 6

[已解决]类模块的两个问题。

[复制链接]
发表于 2013-12-19 15:50 | 显示全部楼层 |阅读模式
本帖最后由 silenthunter 于 2013-12-20 22:29 编辑

以下两种方法,普通模块的写法一样,但类模块的写法却完全不同。显然第2种类模块的写法简单得多。
请教这两种方法各自原理是什么,哪一种比较好?

第1种方法:
普通模块:

Private Sub Classtest()
Dim Rect As New Rectanglee_1
Rect.Gao = 11
MsgBox Rect.Gao, vbInformation
End Sub
类模块:
Dim Heightt As Double, Lengthh As Double
Property Let Gao(h)
Heightt = h
End Property
Property Get Gao()
Gao = Heightt
End Property
=========================
第2种方法:
普通模块:

Private Sub classtest2()
Dim Rect As New Rectanglee_2
Rect.Gao = 11
MsgBox Rect.Gao, vbInformation
End Sub
类模块:
Public Gao As Double



最佳答案
2013-12-19 18:20
主要的区别有两点
1 读写分开,可以分别设置权限,例如设置某个属性为只读.
2 let或get里不仅仅可以赋值,还可以添加一些计算过程,例如长度单位换算(米换成毫米),数据格式修改等等.
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-12-19 16:10 | 显示全部楼层
第一种方法好,定义属性,利于数值安全
回复

使用道具 举报

 楼主| 发表于 2013-12-19 16:11 | 显示全部楼层
amesman 发表于 2013-12-19 16:10
第一种方法好,定义属性,利于数值安全

你好。什么是利于安全?我不考虑黑客的。
回复

使用道具 举报

发表于 2013-12-19 16:15 | 显示全部楼层
VBA差异不大,上面是属性设定方式,下面是直接赋值为一个字段。
回复

使用道具 举报

发表于 2013-12-19 16:59 | 显示全部楼层
第一种可以定义只读属性, 用户不能读,类中可以改. 一般用于保存一些类的状态
小程序无所谓 自己知道类怎样用
回复

使用道具 举报

发表于 2013-12-19 17:17 | 显示全部楼层
其实差不多
回复

使用道具 举报

发表于 2013-12-19 18:20 | 显示全部楼层    本楼为最佳答案   
主要的区别有两点
1 读写分开,可以分别设置权限,例如设置某个属性为只读.
2 let或get里不仅仅可以赋值,还可以添加一些计算过程,例如长度单位换算(米换成毫米),数据格式修改等等.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-21 12:50 , Processed in 0.284833 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表