Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.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_Subroutine - Fatal编程技术网

Excel VBA:从动态模块引用调用子计数器

Excel VBA:从动态模块引用调用子计数器,excel,vba,subroutine,Excel,Vba,Subroutine,如果您查看我的历史记录,您将看到我一直通过方法调用工作表引用。一种此类方法的工作示例: 'In module GlobalRefs Function W_ExampleWS() As Worksheet Set W_ExampleWS = ActiveWorkbook.Worksheets("ExampleWS") End Function 因此,当我执行与工作表相关的常规调用时,它们会起作用: ... GlobalRefs.W_ExamplesWS.Range("A1").Valu

如果您查看我的历史记录,您将看到我一直通过方法调用工作表引用。一种此类方法的工作示例:

'In module GlobalRefs

Function W_ExampleWS() As Worksheet
    Set W_ExampleWS = ActiveWorkbook.Worksheets("ExampleWS")
End Function
因此,当我执行与工作表相关的常规调用时,它们会起作用:

...
GlobalRefs.W_ExamplesWS.Range("A1").Value = 42 'works
...
但是,工作表ExampleWS有一个名为“DesignGraph”的子例程。我希望能够通过这样的方法调用该子例程

'In module AnotherRandomModule

...
GlobalRefs.W_ExampleWS.DesignGraph arg1 arg2
...
尽管VBA编辑器的intellisense承认存在子例程,因为如果拼写错误,它会更正DesignGraph的大小写,但我仍不断收到错误,比如方法未定义。我给出了正确的论据


为什么会这样

工作表类没有DesignGraph方法-只有特定的工作表有。假设DesignGraph是一个公共子对象,如果您更改函数以返回一个对象,则不应出现问题。

是否在
arg1
arg2
之间缺少逗号?@JosieP给出了答案(和建议)。另一种方法可能是在自定义类中“包装”工作表对象,该类将
设计图
(以及任何其他例程)作为方法公开。如果您想对一个特定的工作表“类型”进行建模,这是一个很好的方法,其中可能有许多实例:它还可以避免在该类型的每个实例中重复代码。@KazJaw抱歉,这是问题中的一个输入错误。:我决定走另一条路,但你的一点点知识帮助我理解了我所面临的问题。