Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:如何避免代码重复-类似属性_Excel_Vba_Function - Fatal编程技术网

Excel VBA:如何避免代码重复-类似属性

Excel VBA:如何避免代码重复-类似属性,excel,vba,function,Excel,Vba,Function,我有一个类,它有一堆看起来几乎相同的属性。 如果不是gXXXReady,则“检查全局布尔变量gXXXReady 调用对象。子过程yyy() 如果结束 设置XXX=gXXX'将全局变量用作属性值 端属性 这些属性之间的区别是XXX和``YYY'` 有没有办法简化这段代码?比如: Private Function UniversalGetFunc(ByVal VarName As String, ByVal MethodName As String) If Not GetVarByName(

我有一个
,它有一堆看起来几乎相同的
属性。


如果不是gXXXReady,则“检查全局布尔变量gXXXReady
调用对象。子过程yyy()
如果结束
设置XXX=gXXX'将全局变量用作属性值
端属性
这些
属性
之间的区别是
XXX
和``YYY'`

有没有办法简化这段代码?比如:

Private Function UniversalGetFunc(ByVal VarName As String, ByVal MethodName As String)
  If Not GetVarByName(VarName) Then
    call Object.CallProcedureByName("SubProcedure" & MethodName)
  End If
End Function
...
' Usage
Property Get XXX() As Collection
  UniversalGetFunc("XXX", "YYY")
  set XXX = gXXX
End Property
其中
GetVarByName
CallProcedureByName
显然是虚构的函数<代码>对象对于我的所有属性都是相同的,因此无需将其传递给
UniversalGetFunc

甚至可以使用(Office VBA?)

谢谢大家!


PS:The

如果您已经有一个全局变量(
gXXX
),为什么需要将其设置为属性?或者你的意思是它对类来说是全局的,但在类之外不是公共的(a
Private
global)?确切地说。全局变量是私有的,由
属性Get
(=只读)读取。