Какова лучшая стратегия в VBA для передачи полного массива из одного списка пользовательских форм в другой? - PullRequest
0 голосов
/ 28 ноября 2018

Я передаю содержимое двумерного массива (заголовок первого столбца и все номера столбцов) в пользовательскую форму с именем Listbox1.Здесь пользователь выбирает элементы, которые передаются в Listbox2, и, наконец, пользователь активирует процесс, который отправляет данные в веб-службу.

До сих пор мне удалось заполнить Listbox1 только заголовками данных, но у меня возникла проблема с сохранением всех значений в listbox2, а не только заголовка.Я думал о создании частной переменной на уровне пользовательской формы для хранения полного массива, но, похоже, он вызывает проблему несоответствия типов со свойствами let / get.

Какова лучшая стратегия для обработки полного набора данныхс двумя списками?


Private pArr As Variant
Public Property Get arr() As Variant
    Set arr = pArr
End Property
Public Property Let arr(Value As Variant)
    Set pArr = Value
End Property

Private Sub LoadModelData()

    Dim i As Integer
    Dim myArray As Variant
    Dim v As Variant
    Dim mystring As String

    myArray = ReadModelData(this is the function returning the array data from a range)

    Set pArr = myArray

    For i = LBound(myArray) To UBound(pArr)
        If pArr(i)(1, 1) <> vbNullString Then
            frmListModelItms.List1.AddItem (pArr(i)(1, 1))
        End If
    Next i

End Sub

1 Ответ

0 голосов
/ 28 ноября 2018

Насколько я понимаю, arr свойство вашего класса - array, а не object

, поэтому не используйте ключевое слово Set:

Private pArr As Variant

Public Property Get arr() As Variant
    arr = pArr
End Property

Public Property Let arr(Value As Variant)
    pArr = Value
End Property
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...