VBA Массив типа варианта как свойство класса - PullRequest
3 голосов
/ 17 марта 2011

У меня есть класс, который обрабатывает несколько числовых массивов (типа double), а также должен обрабатывать массив дескрипторов, который будет включать в себя смесь строк и целых чисел, которые должны использоваться как строки и числа соответственно.Поэтому я решил сделать свойство массива типа варианта (а не вариант, содержащий массив).Но этот, похоже, не работает, в то время как двойные массивы типа работают.

В частности, это свойство типа array double отлично подходит для получения или возврата массива одновременно:

Private p_dbNumericArray() As Double

Public Property Let NumericArray(Value() As Double)
    p_dbNumericArray() = Value()
End Property
Public Property Get NumericArray() As Double()
    NumericArray() = p_dbNumericArray()
End Property

Но когда я пытаюсь использовать тот же шаблон с массивом варианта type,свойство Get возвращает пустой / нераспределенный массив вариантов:

Private p_vaVariantArray() As Variant

Public Property Let VariantArray(Value() As Variant)
    p_vaVariantArray() = Value()
End Property
Public Property Get VariantArray() As Variant()
    VariantArray() = p_vaVariantArray()
End Property

Обтекание массива в варианте (вместо наличия массива варианта варианта), конечно, работает нормально:

Private p_vaVariantArray As Variant

Public Property Let VariantArray(Value As Variant)
    p_vaVariantArray = Value
End Property
Public Property Get VariantArray() As Variant
    VariantArray = p_vaVariantArray
End Property

Известно ли и является ли стандартным, что шаблон, который работает для Dim D () As Double, не работает для Dim V () As Variant, в свойствах?

1 Ответ

2 голосов
/ 17 марта 2011
Public Property Get VariantArray() As Variant()
    VariantArray = p_vaVariantArray()
End Property

Обратите внимание на пропущенные скобки.

...