Инициализируйте переменную-член класса vba с помощью Range - PullRequest
1 голос
/ 23 августа 2011

Я создал класс с одной из переменных-членов типа range.Теперь, если я пытаюсь инициализировать или установить значение этого диапазона, я выдаю ошибку: переменная объекта или переменная блока не установлены.Теперь я подумал, что это потому, что он инициализируется как Nothing, но если я использую класс sub Class_Initialize и пытаюсь установить значение по умолчанию, он все равно ошибается.Так что же дает?

Private pRng As Range
Private pstype As Boolean

Public Property Get Rng() As Range
    Rng = pRng
End Property

Public Property Let Rng(Value As Range)
   pRng = Value
End Property

Public Property Get Stype() As Boolean
   Stype = pstype
End Property

Public Property Let Stype(Value As Boolean)
    pstype = Value
End Property

Private Sub Class_Initialize()
    pRng = Range("A1")
    pstype = True
End Sub

1 Ответ

4 голосов
/ 23 августа 2011

Вам нужно использовать ключевое слово Set для инициализации или установки диапазона, например:

Set Rng = pRng
Set pRng = Value
...