Excel:如何从VbScript调用工作表模块中的函数

使用VBScript,我试图运行驻留在其中一个代码模块的子例程。 现在这个特定的子调用几个其他的子/function,其中包括几个驻留在表单模块。 而在调用这些潜在的表单模块,我得到可以错误:

"Sub or Function undefined!" 

我怎样才能解决这个问题? 有很多这样的function,我不希望将它们全部从Sheet模块移动到代码模块。 有没有更好的解决办法呢?

调用子模块(驻留在代码模块中),不调用任何代码表单模块上的VBScript工作正常,所以我敢肯定,这是上面的一点是造成问题。

如果您正在调用不同模块的子例程或函数,则需要确定两件事情

  1. Sub / Function不应该被声明为Private
  2. 您通过在代码所在的模块名称前面加上子/函数调用

所以如果你有一个名为TestSub的Sub,并且它存在于Sheet1的代码模块中,那么你应该把它Sheet1.TestSub 。 通过使用TestSub调用它将导致错误Sub or Function not defined

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

在这个例子中,真正的纸张名称在左边,而显示名称在右边。 您应该使用左侧的名称参考表格。

SheetNames