VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别
在VB中,属性是可以有参数的,而VBA中属性使用参数非常常见。比如最常用的:Worksheet.Range("A1:A10")
VB的语法,使用参数的不一定是方法,也有可能是属性!(虽然属性的本质是方法)
例一:参数当作“索引”使用
定义一个类模块,模块名称Ints。为简化模型,使用了只读属性。
Private arr() As Integer Public Property Get ArrValue(Index As Integer) As Integer
ArrValue = arr(Index)
End Property '初始化arr(3)的值
Private Sub Class_Initialize()
arr() =
arr() =
arr() =
arr() =
End Sub
调用:
Sub Test()
Dim c As New Ints
Debug.Print c.ArrValue() 'ArrValue是属性,并且带有参数( 索引 )
'输出结果=3
End Sub
例2:可选参数
定义一个类模块,模块名称MyCal。
这个类的作用是计算两个数的和,当加数为负数时,使加数=0 (示例使用,没多少实际意义)
Private m As Integer
Private n As Integer Public Property Get intm() As Integer
intm = m
End Property Public Property Let intm(ByVal xvalue As Integer)
m = xvalue
End Property Public Property Get intn(Optional b As Boolean = False) As Integer
intn = n
End Property '加数为负数时,n赋值为0
Public Property Let intn(Optional b As Boolean = False, ByVal xvalue As Integer)
If b And n <= Then
n =
Else
n = xvalue
End If
End Property '计算两个数的和
Public Function MySum() As Integer
MySum = intm + intn
End Function
调用:
Sub Test()
Dim c As New MyCal c.intm =
c.intn = - Debug.Print c.MySum '输出 0 c.intm =
c.intn(True) = - Debug.Print c.MySum '输出 4 End Sub
VBA中Range对象的Value就是有可选参数的属性
而Range对象的另外一个属性Value2是非参数化的属性
Value属性参数的意义:
VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别的更多相关文章
- VB默认属性、动态数组、Range对象的默认属性的一点不成熟的想法
1.默认属性 VB6.0有默认属性的特性.当没有给对象指定具体的属性时,"默认属性"是VB6.0将使用的属性.在某些情形下,省略常用属性名,使代码更为精简. 因为CommandBu ...
- 获取VB类模块成员函数指针(转)
最近在做一些VB6.VBA的项目,被如何获取类模块中的函数指针这个问题所困扰,收集整理后,有2分资料值得收藏,特将关键部分留存,以备后续查找. 参照连接1:http://www.cnblogs.com ...
- 通过反射获取父类中的泛型参数对应的Class对象
假设有两个类:Dao 和 PersonDao,它们的代码如下: Dao: public class Dao<T> { private Class<T> clazz; T get ...
- verilog中参数传递与参数定义中#的作用(二)
一.module内部有效的定义 用parameter来定义一个标志符代表一个常量,称作符号常量,他可以提高程序的可读性和可维护性.parameter是参数型数据的关键字,在每一个赋值语句的右边都必须是 ...
- VB6/VBA中跟踪鼠标移出窗体控件事件(类模块成员函数指针CHooker类应用)
一.关于起因 前几天发了一篇博文,是关于获取VB类模块成员函数指针的内容(http://www.cnblogs.com/alexywt/p/5880993.html):今天我就发一下我的应用实例. V ...
- VB-创建类模块DLL文件
最近需要调用MSCOMM32.OCX控件,但是ABAP调用过程中发现无法同时发送多条记录,则需调整实现方式: a.创建DLL文件封装MSCOMM控件相关属性及方法 b.系统注册DLL文件 c.ABAP ...
- 处理Selection对象和Range对象——Word VBA中重要的两个对象
处理Selection对象和Range对象——Word VBA中重要的两个对象 Word 开发人员参考Selection 对象代表窗口或窗格中的当前所选内容.所选内容代表文档中选定(或突出显示)的区域 ...
- Web---演示Servlet的相关类、表单多参数接收、文件上传简单入门
说明: Servlet的其他相关类: ServletConfig – 代表Servlet的初始化配置参数. ServletContext – 代表整个Web项目. ServletRequest – 代 ...
- Struts2中Action接收参数的方法
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt112 Struts2中Action接收参数的方法主要有以下三种: 1.使用A ...
随机推荐
- hdfs shell 命令以及原理
shell 操作 dfs 上传[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -put /opt/MegaRAID/MegaCli/MegaCli64 ...
- VSS转SVN
我们都知道VSS和SVN都是源代码的版本控制软件:最近公司准备把多年使用的VSS代码全部转到SVN中进行管理,查询了一些资料,整理一下,分享给大家 基本分三大步进行,如下: 1.去掉VSS所有绑定 2 ...
- Design and Analysis of Algorithms_Fundamentals of the Analysis of Algorithm Efficiency
I collect and make up this pseudocode from the book: <<Introduction to the Design and Analysis ...
- ssh+expect批量分发
Expect安装 [root@web02 scripts]# yum install expect SSH密钥生成 [root@web02 scripts]# ssh-keygen -t dsa ...
- C/C++之指针加减法
C和C++中可对指针进行加减,但对其进行乘除则基本无实际意义.一般来说,对指针进行减法的前提是减数和被减数均指向同一数组.加法同理.需要注意的是,两个指针的减法,结果是两个地址之间索引变量的数目,而不 ...
- Java比C++好在哪儿?
1.内外局部变量,不允许重名,避免了C++的那种混淆. 2.语言层面支持多线程,大幅减少了线程同步所需的代码量. 3.匿名类,匿名函数,可以作为参数直接写在参数所需要的位置,而不需要在其它地方再定义实 ...
- html与css面试结合工作的总结难点
面试的时候一般会常常问起的,同时也是工作的时候会常常问道的几个问题,一下之列表内容,详细的后会附有文章,希望能帮到大家,同时有不足希望大家多多补充交流. 1.主要是的是浮动的问题(常见的问题有,三列布 ...
- C:\Program Files (x86)\Common Files\microsoft shared\DevServer\10.0
C:\Program Files (x86)\Common Files\microsoft shared\DevServer\10.0
- Cellebrite UFED 5.1 发布,全面支持三星 S6 S6 Edge Note5 HUAWEI series
世界级取证公司Cellebrite 昨天发布了最新的 UFED 5.1 系统更新,4PC全面支持三星S6,S6EDGE NOTE5 以及HUAWEI,LG系列恢复,锁屏密码XX!下面是部分截图 有需要 ...
- java 线程 障碍器
package de.bvb; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.TimeUnit; /** ...