从另一个模块调用sub

时间:2015-03-26 04:51:34

标签: vba access-vba

我在Function Test()中有一个简单的Module1,在Sub SubName()中有一个Module2。我正试图从SubName()致电Function Test()。当我输入:

Call Module2.SubName 

退出原始,我收到错误:

  

编译错误:预期:标识符

当我输入Module2并放入Stop时,它会在Module2中提供SubName的名称。所以它看到它,但看起来在语法中缺少一些东西。我无法弄清楚是什么。

2 个答案:

答案 0 :(得分:0)

一些相关链接:

  1. MSDN-Calling Sub and Function Procedures
  2. SO-Calling a Sub in VBA
  3. SO-What does the Call keyword do in VB6?
  4. 您问题的解决方案:

    使用Call SubNameSubName


    测试:

    经过一些测试,我已经能够破解代码。错误 NOT 与您获得的错误相同,但这可能会让我们更接近解决方案。

      

    来自VBA的图片:   Picture from VBA

答案 1 :(得分:0)

解决方案很简单:只需使用语句

即可
SubName

它将被调用。

几句澄清言论:

  • 无需使用Call语句。但是,如果您这样做,则需要使用Call SubName()
  • 如果您使用参数调用任何子广告,请使用SubName Param1 - 或致电Call SubName(Param1)。不要使用Subname(Param1) - 如果param1是一个对象,这会将它的默认属性传递给sub,而不是对象(例如Subname (Range("A1"))将传递单元格的值sub - 但不是Range对象 - Subname Range("A1")将传递Range对象。
  • 您也可以使用Module2.SubName - 但只有在不同模块中有多个SubName子时才需要这样做