Вы можете использовать функцию Split ().Примерно так:
Public Function SplitToListBox(ByVal strInput As String) As String
Dim strTemp() As String
Dim intCounter As Integer
Dim strRowsource As String
Const strQuote As String = """"
strTemp() = Split(strInput, " ")
For intCounter = 0 To UBound(strTemp())
If Len(strRowsource) = 0 Then
strRowsource = strQuote & Trim(CStr(intCounter)) & strQuote & "; " & strQuote & strTemp(intCounter) & strQuote
Else
strRowsource = strRowsource & "; " & strQuote & Trim(CStr(intCounter)) & strQuote & "; " & strQuote & strTemp(intCounter) & strQuote
End If
Next intCounter
SplitToListBox = strRowsource
End Function
Теперь вам понадобится список, заданный двумя столбцами, и вы захотите установить ширину для этих столбцов соответствующим образом (0,5 "; 1" работает, если вы хотитечтобы увидеть оба; 0 "; 1" работает, если вы хотите, чтобы первый столбец был скрыт (хотя это будет связанный столбец, если вы не измените свойства по умолчанию). Также необходимо установить для свойства RowSourceType значение "Список значений"".
Одно предупреждение:
Существует жесткое ограничение на длину свойства Rowsource, когда это список значений. Я не могу вспомнить точное число, но оно где-то больше 2000 символовЕсли вам нужно больше этого, я бы посоветовал вам преобразовать код, который создает список, в пользовательскую функцию. Инструкции о том, как это сделать, приведены в справке для комбинированных списков / списков.