将对象集合作为参数传递给vba

时间:2013-02-22 22:02:49

标签: vba excel-vba excel

我对VBA来说是全新的,我希望得到一些应该是微不足道的帮助。 我有以下代码:

Sub sub1()
Dim buys As Collection
Dim sells As Collection
Set buys = New Collection
Set sells = New Collection


handleBuy rowCounter, buys, sells

End Sub




Sub handleBuy(ByVal rowNum As Integer, ByRef listBuys As Collection, ByRef listSells As Collection)
'do something here with the collections

End Sub

上述集合包含由我定义的类实例化的对象。 当我尝试运行上面的代码时,我得到一个运行时错误424“Object Required” 发生对handleBuy的调用时会发生错误。 我在这里错过了什么? 非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

2个选项:

  1. 定义rowCounter变量;或
  2. 删除Option Explicit
  3. 1是首选。

答案 1 :(得分:1)

发生错误是因为rowCounter未被Dim编辑为Integer(并且在没有Option Explicit的情况下)属于默认类型Variant 。这与声明的Sub handleBuy(ByVal rowNum As Integer

无法匹配

解决方案:使用Option Explict - 这有助于防止此类错误 并声明Dim rowCounter As Integer

顺便说一下,你应该使用Long而不是Integer