Excel:如何从VbScript调用Sheet模块中的函数

时间:2013-12-03 12:43:26

标签: excel excel-vba vbscript vba

使用VBScript,我正在尝试运行一个驻留在其中一个代码模块中的子例程。现在,这个特殊的子调用了几个其他的子/函数,包括少数驻留在表单模块上的子函数。并且在调用驻留在Sheet Modules中的这些subs时,我得到了错误:

"Sub or Function undefined!"

我该如何解决这个问题?有很多这样的功能,我不想将它们全部从Sheet模块移动到代码模块。对此有更好的解决方法吗?

调用未调用Sheet模块上任何代码的子(驻留在代码模块中)的VBScript运行正常,所以我确定上述位是导致问题的。

1 个答案:

答案 0 :(得分:6)

如果您正在调用Sub Routines或来自不同模块的功能,那么您需要确保两件事

  1. 不应将Sub / Function声明为Private
  2. 通过在代码所在的模块名称前面加上
  3. 来调用Sub / Function

    因此,如果您有一个名为TestSub的Sub并且它位于Sheet1的代码模块中,那么您应该像Sheet1.TestSub一样调用它。仅使用TestSub来调用它将导致错误Sub or Function not defined

    如评论中所述,工作表的名称并不总是与显示名称相同。您可以在VBE中找到对象资源管理器中工作表的名称

    在此示例中,实际工作表名称位于左侧,而显示名称位于右侧。您应该使用左侧的名称来参考表格。

    SheetNames