我对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的调用时会发生错误。 我在这里错过了什么? 非常感谢任何帮助。
答案 0 :(得分:1)
2个选项:
rowCounter
变量;或Option Explicit
1是首选。
答案 1 :(得分:1)
发生错误是因为rowCounter
未被Dim
编辑为Integer
(并且在没有Option Explicit
的情况下)属于默认类型Variant
。这与声明的Sub handleBuy(ByVal rowNum As Integer
解决方案:使用Option Explict
- 这有助于防止此类错误
并声明Dim rowCounter As Integer
顺便说一下,你应该使用Long
而不是Integer