Пример вызова соединяющих значений столбцов
Как можно ближе к исходному сообщению, вы можете прочитать все значения в 1-мерный 2-кратный временный массив, объединить 1-й, 3-й и 5-йзначения столбцов на &
и присвоить их обратно свойству .List
в выпадающем списке:
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Set ws = Worksheets("Tabelle1")
Dim lastrow As Long, i As Long
lastrow = ws.Columns("A").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Dim v As Variant
v = ws.Range("C" & ws.Range("start_row_pu").Row + 1 & ":" & "G" & lastrow).Value2
For i = LBound(v) To UBound(v) ' join column values C, E, G
v(i, 1) = v(i, 1) & " - " & v(i, 3) & " - " & v(i, 5)
Next i
ReDim Preserve v(1 to Ubound(v), 1 to 1) ' redimension temporary array to 1 column
ComboBox1.List = v ' assign array back to .List property
End Sub
Дополнительные примечания по вопросу в комментарии
После присвоения диапазонаданные (например, C2:G4711
) в 2-мерный массив вариантов на основе 1 v
теперь необходимо выполнить цикл по данным массива на основе 1, где
LBound(v)
всегда начинается с "строка" 1
в массиве на основе 1 (так называемая нижняя граница) и UBound(v)
возвращает верхнюю границу, например 4710
(= 4711 - 2+ 1, начиная со второго ряда) "строки" ;
теперь вы ссылаетесь на данные столбца C
в исходном диапазоне через "столбец" индекс 1
варианта массива, т.е. v(i, 1)
до E
через индекс 3
: v(i, 3)
, до G
через индекс 5
: v(i, 5)
.Приведенный выше пример объединяет 1-е, 3-е и 5-е значения в элементах массива column через соединитель &
и таким образом присваивает результирующую строку обратно первому столбцу массива (более) запись уже прочитанного в столбце данных диапазона C
.
В конце концов вам придется изменить размеры исходных 5 столбцов массива только на один, чтобы представить нужную строку данных, подключенную сейчас " - "
.