Страницы: 1
RSS
В ComboBox извлечение первого символа после пробела
 
Здравствуйте! Уважаемые знатоки, прошу дать пожалуйста дать ответ на следующий не большой вопрос.
Забиваем ФИО через combobox, но в ячейки нужна подстановка из столбца В:В. Т.е. набрали в соmbobox Иванов Иван Иванович, в ячейки получили Иванов И.И.
 
Уточните название темы. Непонятна задача.
Модераторы заменят.
 
Dobepman, Вы свой пример смотрели? Там же 1500 строк Ивановых Иван Ивановичей... Кому нужен такой пример? Хватило бы и десятка строк, но с разными Ф.И.О.
 
vikttur,Идея такова -в комбобоксе набирать по полному фио, но в ячейку должно подставляться фио с сокращенными инициалами Иванов И.И.
Или здесь комбобокс не помощник?
 
Юрий М, я подумал что про 1500 строк Иван Иванычей - шутка, ан нет, действительно  :)

Тема: В ComboBox извлечение первого символа после пробела

Возможно, перемудрил, но у меня так получилось:
Код
Private Sub CommandButton1_Click()
   Dim sName_ As String
   Dim splName_ As Variant
   Dim Fam As String
   Dim Nam1 As String
   Dim Nam2 As String
   
On Error GoTo Er
   Name_ = Me.ComboBox1.Value
   splName_ = Split(Name_, " ")
   
   Fam = splName_(0)
   Nam1 = Left(splName_(1), 1)
   Nam2 = Left(splName_(2), 1)
   
   ActiveCell = Fam & " " & Nam1 & "." & Nam2 & "."
   Unload UserForm1
   Exit Sub
Er:
   MsgBox "Выберите имя из списка"
End Sub
Изменено: _Igor_61 - 30.11.2018 22:40:05
 
А так?
Код
    Name_ = Me.ComboBox1.Value
    Nam1 = Left$(Name_, InStr(Name_, " ") + 1) & "."
    Nam1 = Nam1 & Left$(Split(Name_)(2), 1) & "."
 
Ну не знал я про InStr, и что вот так скомбинировать можно, но ведь без Split все равно не обошлось, значит правильно задумано было?  :)  
 
Можно и без Split - еще есть InStrRev
Код
    sName_ = Trim$("Иванов Иван Иванович")
    sNam1 = Left$(sName_, InStr(sName_, " ") + 1) & "."
    ActiveCell = sNam1 & Mid$(sName_, InStrRev(sName_, " ") + 1, 1) & "."

Это наброски.  По правильному нужно чистить от множественных пробелов, тект нужно брать в LCase. потом начальные большой буквой...
 
_Igor_61, vikttur, спасибо ответ подошел
Страницы: 1
Наверх