Excel VBA:为什么将自定义类对象添加到自定义类数组中时会出现运行时错误438?
Excel VBA:为什么将自定义类对象添加到自定义类数组中时会出现运行时错误438?
我知道这个错误在这里和其他地方有几个帖子,但是导致问题的原因似乎到处都是,到目前为止我看到的解决方案似乎都无法解决我面临的问题。
我有一个类模块,其中包含以下代码:
Public questionID As Integer Public score As Double Public time As Date Private lines() As New Line '如果我删除'New',我会得到运行时错误91 Sub CreateByRow(row As Range) questionID = row.Cells(1, 1) score = row.Cells(1, 7) time = row.Cells(1, 8) ''' 插入行 ''' Dim tLines As ListObject Set tLines = shtLines.ListObjects("lines") Erase lines Dim rLine As Range For Each rLine In tLines.Range.Rows If rLine.Cells(1, 1) = questionID Then Dim ln As New Line ln.CreateByRow rLine 'Line对象按预期创建 u = UBound(lines) + 1 'u = 0,如预期 ReDim lines(u) '数组的长度为1,索引为0,如预期 lines(u) = ln '这就是错误发生的地方 End If Next End Sub
当我运行这段代码时,我得到运行时错误438,但我不明白为什么。数组正在寻找`Line`对象。我尝试放入的`Line`对象不为空。
当我在出现问题的行上暂停时:
[![lines data and Ln data](https://i.stack.imgur.com/TySJI.png)](https://i.stack.imgur.com/TySJI.png)