2014-10-10 2 views
1

У меня есть класс InsertInfo с ProperrtyПрисвоить Range к классу недвижимости

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" 

Так что, похоже, что у него что-то есть сделать это с классом, но я просто не вижу, в чем проблема. Кто может мне помочь?

EDIT:

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

работает отлично кстати. Так что, похоже, мне нужно настроить свойство класса. Я уже пробовал ByRef вместо ByVal, но я все еще получаю сообщение об ошибке.

ответ

0

При назначении объекту диапазона вам необходимо использовать Set.

myPPTRange - это ассортимент. Поэтому в вашем модуле класса измените строку myPPTRange = value на Set myPPTRange = value

+0

Большое спасибо! Это прекрасно работает! – ruedi

0

В дополнение к использованию SET внутри вашего свойства вам также может понадобиться определить ваш объект в двух строках вместо синтаксиса определения одной строки.

Dim objInfo as InsertInfo 
set objInfo = New InsertInfo 
Смежные вопросы