Здравствуйте! Уважаемые знатоки, прошу дать пожалуйста ответ на следующий не большой вопрос. Имеем список вида: Иванов Иван Иванович значение1 значение2 значение3 значение4 Необходимо получить: значение4 Иванов И.И. Нюанс в том что значение4 может быть одним словом или двумя, но между ними всегда пробел.
Примитивный пример преобразования не без недостатков.
Код
Sub test1()
Dim iVal$, arr, i&
Const iName = "Иванов Иван"
arr = Split(iName)
For i = 0 To UBound(arr)
If i > 0 Then iVal = iVal & " " & Left(arr(i), 1) & "." Else iVal = arr(i)
Next i
MsgBox iVal
End Sub
См. вариант. Находите время отписываться в своих темах: люди ведь тратили своё время, пытаясь оказать Вам помощь, а Вам "времени не хватает на жизнь". И попробуйте обходиться без цитирования, когда в этом нет необходимости.
Юрий М, Не пойму что делаю не так(скрин)? rowSource нужен чтобы подсветка срабатывала при наборе первых символов
Nordheim, я так понял Ваш код выводит просто сообщение, нужно то что в сообщение помещать в ячейку, но опять же в сообщении фамилия и инициал имени, от преобразования требуется получить Значение4 Фамилия И.И.
Пытливый,список имеем в имени "спи", получить в активной ячейке.
А почему Вы решили, что что-то не так? Рискну предположить, что когда активна форма, никакой ActiveCell не существует... Но это не точно. Да и скрывать форму путём Unload - фиговая идея. Я бы написал в модуле формы
Код
Me.Hide
а в основном сабе -
Код
With UserForm1.ComboBox1
ActiveCell.value=.List(.ListCount-1,0)
End With
Юрий М, не подходит т.к. информация в значение1 значение2 значение3 позволяет идентифицировать искомого человека среди однофамильцев с одинаковым именем и отчест. StoTisteg, спасибо учтем
Dobepman написал: не подходит т.к. информация в значение1 значение2 значение3
Но Вы же просили ТОЛЬКО переставить четвёртое значение в первую позицию. Про значения 1...3 не было ни слова сказано. Из файла: "Необходимо получить: значение4 Иванов И.И." - мой макрос решает ЭТУ задачу?