在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属性的一点区别的更多相关文章

  1. VB默认属性、动态数组、Range对象的默认属性的一点不成熟的想法

    1.默认属性 VB6.0有默认属性的特性.当没有给对象指定具体的属性时,"默认属性"是VB6.0将使用的属性.在某些情形下,省略常用属性名,使代码更为精简. 因为CommandBu ...

  2. 获取VB类模块成员函数指针(转)

    最近在做一些VB6.VBA的项目,被如何获取类模块中的函数指针这个问题所困扰,收集整理后,有2分资料值得收藏,特将关键部分留存,以备后续查找. 参照连接1:http://www.cnblogs.com ...

  3. 通过反射获取父类中的泛型参数对应的Class对象

    假设有两个类:Dao 和 PersonDao,它们的代码如下: Dao: public class Dao<T> { private Class<T> clazz; T get ...

  4. verilog中参数传递与参数定义中#的作用(二)

    一.module内部有效的定义 用parameter来定义一个标志符代表一个常量,称作符号常量,他可以提高程序的可读性和可维护性.parameter是参数型数据的关键字,在每一个赋值语句的右边都必须是 ...

  5. VB6/VBA中跟踪鼠标移出窗体控件事件(类模块成员函数指针CHooker类应用)

    一.关于起因 前几天发了一篇博文,是关于获取VB类模块成员函数指针的内容(http://www.cnblogs.com/alexywt/p/5880993.html):今天我就发一下我的应用实例. V ...

  6. VB-创建类模块DLL文件

    最近需要调用MSCOMM32.OCX控件,但是ABAP调用过程中发现无法同时发送多条记录,则需调整实现方式: a.创建DLL文件封装MSCOMM控件相关属性及方法 b.系统注册DLL文件 c.ABAP ...

  7. 处理Selection对象和Range对象——Word VBA中重要的两个对象

    处理Selection对象和Range对象——Word VBA中重要的两个对象 Word 开发人员参考Selection 对象代表窗口或窗格中的当前所选内容.所选内容代表文档中选定(或突出显示)的区域 ...

  8. Web---演示Servlet的相关类、表单多参数接收、文件上传简单入门

    说明: Servlet的其他相关类: ServletConfig – 代表Servlet的初始化配置参数. ServletContext – 代表整个Web项目. ServletRequest – 代 ...

  9. Struts2中Action接收参数的方法

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt112 Struts2中Action接收参数的方法主要有以下三种: 1.使用A ...

随机推荐

  1. log4net 按时间输出日志

    参考:(转)非常完善的Log4net详细说明 log4net 按天与按小时记日志的配置 Log4net 中输出日志到文件,文件名根据日期生成 log4net按日志级别(debug,info,warn, ...

  2. word search puzzle

    package WordSearch; import java.util.ArrayList; import java.util.HashMap; import java.io.*; public c ...

  3. python基础:算法是什么

    "算法"是什么? 简单来说,算法就是告诉计算机要做什么,是对如何做一件事情的详细描述或者详细的操作步骤. 待补充~~~

  4. Configure LDAP Server(centos7 openldap)

    1.安装openldap -server: [root@dlp ~]# yum -y install openldap-servers openldap-clients [root@dlp ~]# c ...

  5. Ajax UI方面的处理方式

    一种方式: 从远程直接获取HTML加载到本地 第二种方式从远程获取JSON,到本地使用JS处理数据. var html = "<table cellspacing=\"0\& ...

  6. Easy Tag Write(3.2)

    package skyseraph.android.util; /** * @Title : LogUtil.java * @Package : tcl.nfc.phone.util * @Class ...

  7. MFC获取Windows启动状态(正常启动、安全模式启动、网络安全模式启动)

    UINT nFlags = GetSystemMetrics(SM_CLEANBOOT); switch(nFlags) { : AfxMessageBox(TEXT("正常启动" ...

  8. java 中构造函数 的理解

    构造方法就是与类同名的那个方法,它的作用是可以用来初始化 class Person{ public Person(String n,int a) {//构造方法 name = n; age = a; ...

  9. [WCF]DomainServices客户端操作异常处理

    作为个人备忘,不做排版.此扩展函数用于DomainServices的Load及SubmitChanges时处理Error信息,包括验证消息.实体冲突. public static string ToE ...

  10. Lucene热词统计

    1.建立搜索表 ID KeyWords DT 搜索一次保存一次,id才用guid提高效率 /// <summary> /// 搜索数据 /// </summary> /// & ...