Заполнение формы ListBox из двухмерного массива работает некорректно, если в массиве 1 запись - PullRequest
1 голос
/ 19 сентября 2019

ВЫПУСК

Когда я пытаюсь заполнить форму ListBox с использованием 2D-массива только 1 строкой, он вместо этого создает отдельные записи из значений столбцов массива.

Кодis:

ListBox1.List = Application.Transpose(Application.Transpose([DataA]))

ЧТО Я ЗНАЮ

В моем проекте данные сначала собираются в массив из разных источников, а затем добавляются в список.

Существует множество столбцов и строк данных, поэтому передача массива является предпочтительным способом добавления каждой записи в отдельный столбец списка.Производительность важна, так как список необходимо обновлять часто и быстро.

В настоящее время мой обходной путь - добавить 2-ю строку в массив по мере необходимости и затем удалить ее из списка напрямую.

ЧТО Я ХОЧУ ЗНАТЬ

Почему список работает по-разному при передаче 1-рядного массива 2d?

ПРИМЕРЫ

Пример рабочей книги для скачивания

Заполняется 5 строками:

enter image description here

Заполняется 1 строкой:

enter image description here

Как выглядят данные для 5 и 1 строки:

enter image description here

1 Ответ

1 голос
/ 19 сентября 2019

Ранее вы могли проверить, имеет ли он один ряд, и затем действовать соответственно:

Private Sub CommandButton5_Click()
    Dim x
    ListBox1.Clear
    x = [DataB]
    ListBox1.List = IIf(UBound(x, 1) = 1, x, Application.Transpose(x))
    TextBox1 = ListBox1.ListCount
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...