У меня есть пользовательская форма, в которой люди проходят цикл и добавляют при каждом щелчке элемент в список. Нажав другую кнопку, элементы должны быть преобразованы в строку с запятой в качестве разделителя.
lstDatabase.AddItem txtfruit.Value
Я попытался преобразовать список в массив, а затем в строку, но это, похоже, не работает.
Dim deliverynoteArray() As Variant
Dim deliverynote_list As String
deliverynoteArray = lstDatabase.List
deliverynote_list = Join(deliverynoteArray, ",")
«Добавить» и «конвертировать» находятся в разделах Private Sub _click. Может в этом проблема? Что данные недоступны?
См.: stackoverflow.com/a/44457705/478884
При использовании deliverynoteArray = lstDatabase.List
код создаст 2D-массив, а Join
работает только с 1D-массивами. Итак, после размещения элемента списка в массиве вы должны использовать Transpose
, который преобразует 2D-массив наличие нескольких строк и один столбец в 1D-тип.
Попробуйте заменить deliverynote_list = Join(deliverynoteArray, ",")
на:
deliverynote_list = Join(Application.Transpose(deliverynoteArray), ",")
Debug.Print deliverynote_list 'just to see it in Immediate Window...
"Кажется, не работает" - всегда полезно объяснить, что делает вместо работы.