VBA – 设置类属性时的“应用程序定义或对象定义的错误”

我正在写一个小的Excelmacros,我有一个名为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 

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

让我知道如果你需要看到任何其他的代码或任何东西!

多谢你们!

尝试使用范围对象的.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