2013-05-20 2 views
0

사용자 지정 개체 모음을 만들고 참조하는 중입니다. 이 클래스는 CProject라고하며 Name과 RefNum이라는 두 가지 속성을가집니다. 생성하고 참조하는VBA 오류 424 (개체 모음 포함)

코드는 다음과 같습니다 : 필요한 개체 :

Dim Projects As Collection 

Sub BuildProjects() 
     Dim i As Integer 
     Set Projects = New Collection 

    For Each c In Worksheets("Active Projects").Range("A4:A750").Cells 
    If IsEmpty(c) Then 

     'Do some stuff 

    Else 
     If Projects.Count > 0 Then 
      For i = 1 To Projects.Count 
       If c.Value = Projects.Item(i).Name Then '<---Error Occurs Here 

        'Do some Duplicate Management Stuff 

       End If 
      Next i 
     End If 
    End If 
Next 
End Sub 

이 코드를 실행하면 나는 오류 424을 얻는다. 나는 자격이 된 객체 식별자를 제공하고 있다고 믿는다. 누구든지 내가 실수 한 곳을 보았나요?

+0

당신이 프로젝트 컬렉션의 내용을 검사 할 지역 창을 사용하여 디버깅 시도? –

+0

당신이 추가하고있는 아이템이 프로젝트 이름이라면 다음과 같이 시도하십시오 :'If c.Value = Projects (i) Then'' – UberNubIsTrue

+0

당신의 콜렉션에 커스텀 객체를 어떻게 채우고 있습니까? Sub의 시작 부분에서 콜렉션을 리셋하지만 오브젝트를 어디에 추가합니까? –

답변

0

컬렉션 항목은 변형 유형이 있습니다, 그래서 당신이로 변경할 수 있습니다

Dim Projects As Collection 

Sub BuildProjects() 
     Dim i As Integer 
     dim var_item as variant 
     dim aCProject as CProject 

     Set Projects = New Collection 

    For Each c In Worksheets("Active Projects").Range("A4:A750").Cells 
    If IsEmpty(c) Then 

     'Do some stuff 

    Else 
     For Each var_item in Projects 
      set aCProject = var_item 
      If c.Value = aCProject.Name Then 

       'Do some Duplicate Management Stuff 

      End If 
     Next 
    End If 
Next 
End Sub