尝试检索字典作为类的属性时,出现运行时错误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
关于为什么会发生此错误以及如何处理的任何想法?
答案 0 :(得分:1)
Option Explicit是您的朋友。您必须将oThisSlider声明为Slider对象才能使其正常工作。
ActiveWorkbook