Если я правильно понимаю, с большой буквы надо писать последнее слово? Тогда можно так [vba]
Код
Function Марка(S As String) As String If S = "" Then Exit Function Dim Arr Arr = Split(S) Arr(UBound(Arr)) = Application.WorksheetFunction.Proper(Arr(UBound(Arr))) Марка = Join(Arr) End Function
[/vba]
Если я правильно понимаю, с большой буквы надо писать последнее слово? Тогда можно так [vba]
Код
Function Марка(S As String) As String If S = "" Then Exit Function Dim Arr Arr = Split(S) Arr(UBound(Arr)) = Application.WorksheetFunction.Proper(Arr(UBound(Arr))) Марка = Join(Arr) End Function
"Огласите весь список, пожалуйста" У Вас же не только Опель, но и Киа рио 1 (и не только ГРМ, но и другие слова перед маркой машины) - как ловить ту позицию, с которой нужно делать большую букву?
А файлик ТСа смотрели? Было бы последнее слово - вообще бы проблем не было бы.
"Огласите весь список, пожалуйста" У Вас же не только Опель, но и Киа рио 1 (и не только ГРМ, но и другие слова перед маркой машины) - как ловить ту позицию, с которой нужно делать большую букву?
Если определяемся по "ГРМ" и там может быть или не быть "на", то можно попробовать такую UDF [vba]
Код
Function Марка(S As String) As String If S = "" Then Exit Function Dim Arr Dim I As Long Dim J As Integer Arr = Split(S) For I = 0 To UBound(Arr) If LCase(Arr(I)) = "грм" Then J = 1 If LCase(Arr(I + J)) = "на" Then J = J + 1 Arr(I + J) = Application.WorksheetFunction.Proper(Arr(I + J)) Марка = Join(Arr) Exit Function End If Next I End Function
[/vba]
Если определяемся по "ГРМ" и там может быть или не быть "на", то можно попробовать такую UDF [vba]
Код
Function Марка(S As String) As String If S = "" Then Exit Function Dim Arr Dim I As Long Dim J As Integer Arr = Split(S) For I = 0 To UBound(Arr) If LCase(Arr(I)) = "грм" Then J = 1 If LCase(Arr(I + J)) = "на" Then J = J + 1 Arr(I + J) = Application.WorksheetFunction.Proper(Arr(I + J)) Марка = Join(Arr) Exit Function End If Next I End Function
все наименования машин или после слова "на"... ...но если убирать слова "на" то он не работает)... ...Чтобы после слов "Замена чего-то ГРМ" после ГРМ любая фраза начиналась с большой буквы.
Следующим отвеом будет "но если убирать слова "ГРМ" то он не работает"?
Цитата
все наименования машин или после слова "на"... ...но если убирать слова "на" то он не работает)... ...Чтобы после слов "Замена чего-то ГРМ" после ГРМ любая фраза начиналась с большой буквы.
Следующим отвеом будет "но если убирать слова "ГРМ" то он не работает"?vikttur
Сообщение отредактировал vikttur - Воскресенье, 14.06.2015, 19:30
Serge_007, если я не ошибаюсь, то цитировали Вы не меня, а 4 сообщение "MBT"
Отвечаю на вопрос:
Порядок в документах: Каждый день сотрудники пишут в таком порядке (что меняли), и писать заведено именно так "Замена чего-то Марка (серия двигателя)" + Облако ключевых слов в нормальном виде
Serge_007, если я не ошибаюсь, то цитировали Вы не меня, а 4 сообщение "MBT"
Отвечаю на вопрос:
Порядок в документах: Каждый день сотрудники пишут в таком порядке (что меняли), и писать заведено именно так "Замена чего-то Марка (серия двигателя)" + Облако ключевых слов в нормальном виде
Т.е. вы решайте, а я потом над условиями подумаю? Ну-ну...
Если же, лично я или моя просьба помочь, чем-то Вам мешает, могу попросить закрыть тему, я думал тут могут помочь решить вопрос, а не потыкать им.StrannicK
я думал тут могут помочь решить вопрос, а не потыкать им
Так решают же. А Вы условия меняете. Вот чв чем проблема. Вы не можете нормально описать задачу, а люди зря время тратят. Уважайте и Вы их работу.
Цитата
я думал тут могут помочь решить вопрос, а не потыкать им
Так решают же. А Вы условия меняете. Вот чв чем проблема. Вы не можете нормально описать задачу, а люди зря время тратят. Уважайте и Вы их работу.vikttur
Так решают же. А Вы условия меняете. Вот чв чем проблема. Вы не можете нормально описать задачу, а люди зря время тратят. Уважайте и Вы их работу.
Условия не менял, просто попросил еще вариант без слова "на", если я с этим списком парился примерно часа 4 (вручную ковырял) то Борода и MBT решили эту задачу за 5 минут.
Просто подумал, если будет не сложно, то же самое но без слова "на", было бы замечательно. Я же не заставляю РЕШИТЕ эту проблему прям сейчас.
Благодарю Бороду и MBT, все работает замечательно! Огромное спасибо! Простите, что отнял драгоценное время
Так решают же. А Вы условия меняете. Вот чв чем проблема. Вы не можете нормально описать задачу, а люди зря время тратят. Уважайте и Вы их работу.
Условия не менял, просто попросил еще вариант без слова "на", если я с этим списком парился примерно часа 4 (вручную ковырял) то Борода и MBT решили эту задачу за 5 минут.
Просто подумал, если будет не сложно, то же самое но без слова "на", было бы замечательно. Я же не заставляю РЕШИТЕ эту проблему прям сейчас.
Благодарю Бороду и MBT, все работает замечательно! Огромное спасибо! Простите, что отнял драгоценное времяStrannicK
Чтобы не переделывать под новые запчасти (вводить вторым аргументом через пробел) [vba]
Код
Function Марка(S As String, Optional ByVal Запчасти As String = "грм") As String If S = "" Then Exit Function Dim Arr Dim I As Long Dim J As Integer Arr = Split(S) Запчасти = LCase(Запчасти) For I = 0 To UBound(Arr) If InStr(Запчасти, LCase(Arr(I))) <> 0 Then J = 1 If LCase(Arr(I + J)) = "на" Then J = J + 1 Arr(I + J) = Application.WorksheetFunction.Proper(Arr(I + J)) Марка = Join(Arr) Exit Function End If Next I End Function
[/vba]
Чтобы не переделывать под новые запчасти (вводить вторым аргументом через пробел) [vba]
Код
Function Марка(S As String, Optional ByVal Запчасти As String = "грм") As String If S = "" Then Exit Function Dim Arr Dim I As Long Dim J As Integer Arr = Split(S) Запчасти = LCase(Запчасти) For I = 0 To UBound(Arr) If InStr(Запчасти, LCase(Arr(I))) <> 0 Then J = 1 If LCase(Arr(I + J)) = "на" Then J = J + 1 Arr(I + J) = Application.WorksheetFunction.Proper(Arr(I + J)) Марка = Join(Arr) Exit Function End If Next I End Function