尝试检索类字典时出现运行时错误451

时间:2018-12-07 22:06:24

标签: excel excel-vba class

尝试检索字典作为类的属性时,出现运行时错误451。它说:“属性让过程注释已定义,属性获取过程未返回对象”。这是主要的子例程代码,然后是类代码,在主要的子例程中,第一个消息框起作用,而第二个消息框(我打算返回与第一个相同的数据)抛出错误:

主要模块:

Sub Main()

'Declaring [BD]
Dim oHeaderDictionary As New Scripting.Dictionary

'Initializing [BD]
Set oThisSlider = New Slider
Set oHeaderDictionary = New Scripting.Dictionary

Worksheets("Options").Activate

iLastRow = bpLastRow("B")

For iRowIncrementer = 3 To iLastRow
    sColumnHeaders = Cells(iRowIncrementer, 2).Value
    sColumnStyles = Cells(iRowIncrementer, 3).Value
    oHeaderDictionary.Add sColumnHeaders, sColumnStyles
Next iRowIncrementer

MsgBox oHeaderDictionary.Items(1)

oThisSlider.Headers = oHeaderDictionary

MsgBox oThisSlider.Headers.Items(1)

End Sub

以及类模块:

'Declaring [BD]
Private m_oHeaders As Scripting.Dictionary

'Initializing [BD]
'==========================================================================================
' [BD] Properties
'==========================================================================================
Property Get Headers() As Scripting.Dictionary
    Set Headers = m_oHeaders
End Property
Property Let Headers(oHeaders As Scripting.Dictionary)
    Set m_oHeaders = oHeaders
End Property

关于为什么会发生此错误以及如何处理的任何想法?

1 个答案:

答案 0 :(得分:1)

Option Explicit是您的朋友。您必须将oThisSlider声明为Slider对象才能使其正常工作。

ActiveWorkbook
相关问题