我有一个带有Properrty的类InsertInfo
Private myPPTRange As Range
Public Property Get PPTRange() As Range
PPTRange = myPPTRange
End Property
Public Property Set PPTRange(ByVal value As Range)
myPPTRange = value
End Property
现在我想用
为其指定一个范围Sub test()
Dim objInfo as New InsertInfo
Set objInfo.PPTRange = ThisWorkbook.Worksheets("Tab").Cells(1,2)
End Sub
通常将一个单元格指定给一个范围在代码中工作正常,但在上面的情况下我总是得到错误:
"Objectvariable or with-blockvariable not set"
所以对我而言,它看起来与class属性有关,但我无法看到问题所在。谁可以帮助我呢?
编辑:
Dim rngTemp as Range
Set rngTemp = ThisWorkbook.Worksheets("Tab").Cells(1,2)
工作正常btw。所以看起来我必须调整我的类属性。我已经尝试过ByRef而不是ByVal,但我仍然收到错误信息。
答案 0 :(得分:0)
分配范围对象时需要使用Set
。
myPPTRange
是一个范围。因此,在您的课程模块中,将行myPPTRange = value
更改为Set myPPTRange = value
答案 1 :(得分:0)
除了在属性中使用SET之外,您可能还需要用两行而不是单行定义语法来定义对象。
Dim objInfo as InsertInfo
set objInfo = New InsertInfo