2013-02-22 3 views
0

전 VBA에 완전히 익숙하지 않아 약간의 도움이 필요합니다. 나는 다음과 같은 코드를 가지고 : 나는 정의 클래스 인스턴스화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 

위의 컬렉션이 포함 개체를. 위 코드를 실행하려고하면 "Object Required"런타임 오류 424가 발생합니다 handleBuy 호출이 발생하는 위치에서 오류가 발생합니다. 여기에 무엇이 누락 되었습니까? 도움을 주시면 대단히 감사하겠습니다.

+2

당신 해야 사용 Long보다는 Integer 나는이 문제를 생각한다 rowCounter가 있습니다. Option Explicit을 사용하면 아무 곳에서나 정의 할 수 있습니다. 변수를 정의해야합니다. 그 외에는 문제없이 코드를 실행할 수있었습니다. – Sorceri

+0

방금 ​​코드를 실행했습니다. 제대로 작동합니다. _ thisact__code가 컴퓨터에서 오류를 생성합니까? 아니면 중요한 것을 버렸습니까? –

+0

그 서브 루틴에서 변수 중 하나를 잘못 입력 한 것으로 나타났습니다. 답변 해 주셔서 감사합니다. –

답변

1

2 선택해

  1. rowCounter 변수를 정의; 또는
  2. Option Explicit

1 분리 바람직하다. rowCounterIntegerDim 등 '에드 없기 때문에 (그리고 Option Explicit의 부재) 기본 유형의 Variant 때문에

1

오류가 발생한다. 선언 Sub handleBuy(ByVal rowNum As Integer

솔루션과을 비교할 수없는 어느 : Option Explict을 사용 -이 오류 의 유형을 예방하는 데 도움이됩니다 그리고 BTW Dim rowCounter As Integer

선언

관련 문제