2014-10-10 91 views
1

我有一个类InsertInfo与Properrty分配范围类属性

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" 

所以对我来说它看起来像它有东西与类属性做,但我不明白什么是问题。任何人都可以帮助我吗?

编辑:

Dim rngTemp as Range 
Set rngTemp = ThisWorkbook.Worksheets("Tab").Cells(1,2) 

工作正常BTW。所以它看起来好像我必须调整我的类属性。我已经尝试了一个ByRef而不是ByVal,但仍然收到错误消息。

回答

0

在分配给范围对象时,您需要使用Set

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

+0

非常感谢!这工作正常! – ruedi 2014-10-10 13:42:57

0

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

Dim objInfo as InsertInfo 
set objInfo = New InsertInfo