我在Excel 2007中使用vba,并且正在为类模块编写代码。
1)以下代码是否可能?...
基本上我有两个枚举,称之为 eDATASET
和 eDATATSUBSET
。来自的特定价值 eDATASET
应该从a中的可选传递参数触发赋值 Let
属性。像这样的东西:
Public Property Let foo(Optional ByVal lngSubSet as eDATASUBSET, _
ByVal lngSuperSet as eDATASET)
Select Case lngSuperSet
Case eDATASET.abc, eDATASET.def
mlngBar = lngSuperSet
Case eDATASET.xyz
'// if lngSubSet not passed, trigger error code...
mlngBar = lngSubSet
End Select
End Property
2)如何在调用对象时将可选参数传递给可写属性...
除了看似向后的位置 Optional
参数(与函数和子函数中的可选参数进行比较),我无法找到有关此功能的任何文档。 vba帮助说:
可选的。表示不需要参数。如果使用,arglist中的所有后续参数也必须是可选的,并使用Optional关键字声明。请注意,Property Let表达式的右侧不可能是Optional。
以及来自 vbusers.com。在使用方式上都没有解释。那么在从代码模块调用对象时如何传递可选参数... oObj.foo = ???
3)有更好的方法吗?...
我对oop有一个基本的了解(至少在如何在vba中实现)。有条件地将参数接受到对象中是否有更好的方法?