0

我对 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 的调用发生的地方。我在这里想念什么?任何帮助是极大的赞赏。

4

2 回答 2

1

发生错误是因为 since rowCounteris not Dim'ed 因为Integer(并且在没有 的情况下Option Explicit)是默认类型Variant。这与声明的不兼容Sub handleBuy(ByVal rowNum As Integer

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

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

于 2013-02-22T23:01:11.440 回答
1

2个选项:

  1. 定义rowCounter变量;或者
  2. 去除Option Explicit

1是首选。

于 2013-02-22T22:57:25.777 回答