【问题标题】:vba error 424 with Collection of Objects带有对象集合的 vba 错误 424
【发布时间】:2013-05-20 01:48:31
【问题描述】:

我正在构建和引用自定义对象的集合。该类名为 CProject,具有 Name 和 RefNum 两个属性。

创建和引用的代码如下所示:

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:需要对象。我相信我提供了一个合格的对象标识符。有谁知道我在哪里犯了错误?

【问题讨论】:

  • 您是否尝试过使用 Locals 窗口进行调试以检查项目集合的内容?
  • 假设您要添加的项目是项目名称然后尝试:If c.Value = Projects(i) Then
  • 您如何使用自定义对象填充您的集合?在您的 Sub 开始时,您重置了 Collection,但是您在哪里添加对象呢?

标签: vba object collections


【解决方案1】:

Collection 项是 Variant 类型,因此您可以这样更改:

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

【讨论】:

    猜你喜欢
    • 2014-09-22
    • 2016-09-30
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多