Excel VBA-“;应用程序定义或对象定义错误“;设置类属性时

Excel VBA-“;应用程序定义或对象定义错误“;设置类属性时,excel,vba,class,Excel,Vba,Class,我正在编写一个小的Excel宏,我有一个名为EventClass的类 我循环工作表中的每一行,并将每一行作为EventClass对象添加到EventClass对象集合中,其中每一行中的每个单元格都是该类的属性 代码如下: Dim iRow As Integer For iRow = 2 To oSourceWorksheet.UsedRange.Rows.Count Set evEvent = New EventClass evEvent.OwnerConsolidated =

我正在编写一个小的Excel宏,我有一个名为EventClass的类

我循环工作表中的每一行,并将每一行作为EventClass对象添加到EventClass对象集合中,其中每一行中的每个单元格都是该类的属性

代码如下:

Dim iRow As Integer
For iRow = 2 To oSourceWorksheet.UsedRange.Rows.Count

    Set evEvent = New EventClass
    evEvent.OwnerConsolidated = oSourceWorksheet.Rows(iRow, 1)
    evEvent.OwnerUser = oSourceWorksheet.Rows(iRow, 2)
    evEvent.ProductsAF = oSourceWorksheet.Rows(iRow, 3)
    evEvent.ProductsGL = oSourceWorksheet.Rows(iRow, 4)
    evEvent.ProductsMZ = oSourceWorksheet.Rows(iRow, 5)
    evEvent.Quarter = oSourceWorksheet.Rows(iRow, 6)
    evEvent.Attendees = oSourceWorksheet.Rows(iRow, 7)
    evEvent.CampaignName = oSourceWorksheet.Rows(iRow, 8)

    colEvents.Add evEvent

Next iRow
在第一个属性集上抛出错误,我不知道为什么

如果您需要查看任何其他代码或任何内容,请告诉我


谢谢大家

我在尝试使用带有两个参数的range对象的
.Rows
属性时遇到此错误,尽管intellisense告诉我可以提供两个参数:

尝试这样做:

With oSourceWorksheet.UsedRange
    evEvent.OwnerConsolidated = .Cells(iRow, 1)
    evEvent.OwnerUser = .Cells(iRow, 2)
    evEvent.ProductsAF = .Cells(iRow, 3)
    evEvent.ProductsGL = .Cells(iRow, 4)
    evEvent.ProductsMZ = .Cells(iRow, 5)
    evEvent.Quarter = .Cells(iRow, 6)
    evEvent.Attendees = .Cells(iRow, 7)
    evEvent.CampaignName = .Cells(iRow, 8)
End With

我在尝试使用带有两个参数的range对象的
.Rows
属性时遇到此错误,尽管intellisense告诉我可以提供两个参数:

尝试这样做:

With oSourceWorksheet.UsedRange
    evEvent.OwnerConsolidated = .Cells(iRow, 1)
    evEvent.OwnerUser = .Cells(iRow, 2)
    evEvent.ProductsAF = .Cells(iRow, 3)
    evEvent.ProductsGL = .Cells(iRow, 4)
    evEvent.ProductsMZ = .Cells(iRow, 5)
    evEvent.Quarter = .Cells(iRow, 6)
    evEvent.Attendees = .Cells(iRow, 7)
    evEvent.CampaignName = .Cells(iRow, 8)
End With

我在尝试使用带有两个参数的range对象的
.Rows
属性时遇到此错误,尽管intellisense告诉我可以提供两个参数:

尝试这样做:

With oSourceWorksheet.UsedRange
    evEvent.OwnerConsolidated = .Cells(iRow, 1)
    evEvent.OwnerUser = .Cells(iRow, 2)
    evEvent.ProductsAF = .Cells(iRow, 3)
    evEvent.ProductsGL = .Cells(iRow, 4)
    evEvent.ProductsMZ = .Cells(iRow, 5)
    evEvent.Quarter = .Cells(iRow, 6)
    evEvent.Attendees = .Cells(iRow, 7)
    evEvent.CampaignName = .Cells(iRow, 8)
End With

我在尝试使用带有两个参数的range对象的
.Rows
属性时遇到此错误,尽管intellisense告诉我可以提供两个参数:

尝试这样做:

With oSourceWorksheet.UsedRange
    evEvent.OwnerConsolidated = .Cells(iRow, 1)
    evEvent.OwnerUser = .Cells(iRow, 2)
    evEvent.ProductsAF = .Cells(iRow, 3)
    evEvent.ProductsGL = .Cells(iRow, 4)
    evEvent.ProductsMZ = .Cells(iRow, 5)
    evEvent.Quarter = .Cells(iRow, 6)
    evEvent.Attendees = .Cells(iRow, 7)
    evEvent.CampaignName = .Cells(iRow, 8)
End With

你能为.OwnerConsolidated发布函数原型吗?抱歉-就像EventClass中的“Get”和“Let”函数一样?是的。我认为您将属性let/set放错了位置。@Bathsheba不应该出现“对象不支持此属性或方法”错误吗?@BethSheba-实际上是您的建议和下面的答案解决了我的问题-谢谢!你能为.OwnerConsolidated发布函数原型吗?抱歉-就像EventClass中的“Get”和“Let”函数一样?是的。我认为您将属性let/set放错了位置。@Bathsheba不应该出现“对象不支持此属性或方法”错误吗?@BethSheba-实际上是您的建议和下面的答案解决了我的问题-谢谢!你能为.OwnerConsolidated发布函数原型吗?抱歉-就像EventClass中的“Get”和“Let”函数一样?是的。我认为您将属性let/set放错了位置。@Bathsheba不应该出现“对象不支持此属性或方法”错误吗?@BethSheba-实际上是您的建议和下面的答案解决了我的问题-谢谢!你能为.OwnerConsolidated发布函数原型吗?抱歉-就像EventClass中的“Get”和“Let”函数一样?是的。我认为您将属性let/set放错了位置。@Bathsheba不应该出现“对象不支持此属性或方法”错误吗?@BethSheba-实际上是您的建议和下面的答案解决了我的问题-谢谢!