свойство redim в модуле класса - PullRequest
2 голосов
/ 13 марта 2012

Я довольно новичок в использовании классов в VBA. Я пытаюсь использовать массив в качестве свойства, где длина массива должна быть переменной. Я искал способ сделать это, но я действительно не понимаю, как работают эти свойства.

поэтому я определяю свой массив в модуле класса

Private pTestArray() As String

и свойства для получения и установки значений

Private Property Get TestArrayValue(index As Long) As String
    TestArrayValue = qTestArray(index)
End Property

Private Property Let ArrayValue(index As Long, strValue As String)
    pTestArray(index) = strValue
End Property

но я не могу найти способ переделать массив. какие-нибудь подсказки? Спасибо C

1 Ответ

5 голосов
/ 13 марта 2012

То есть вы хотите изменить размер задания? тогда вы можете проверить и обработать границы в свойстве Let;

Private Property Let ArrayValue(index As Long, strValue As String)
    If index > UBound(pTestArray) Then ReDim Preserve pTestArray(index)
    pTestArray(index) = strValue
End Property

Вы также должны будете сначала указать размер redim pTestArray(0) в событии Class_Initialize.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...