2013-05-20 65 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

假設您要添加的項目是項目名稱,那麼請嘗試:'如果c.Value = Projects(i)Then' – UberNubIsTrue

+0

如何使用自定義對象填充Collection?在你的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