将范围分配给类属性

时间:2014-10-10 13:32:06

标签: excel-vba vba excel

我有一个带有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,但我仍然收到错误信息。

2 个答案:

答案 0 :(得分:0)

分配范围对象时需要使用Set

myPPTRange是一个范围。因此,在您的课程模块中,将行myPPTRange = value更改为Set myPPTRange = value

答案 1 :(得分:0)

除了在属性中使用SET之外,您可能还需要用两行而不是单行定义语法来定义对象。

Dim objInfo as InsertInfo
set objInfo = New InsertInfo