Option Compare Binary Function FirstProperCaseWord(ByVal txt$) As String ' возвращает первое слово, написанное с заглавной буквы в строке txt$ txt$ = Replace(Replace(txt$, ",", " "), ".", " ") For Each word In Split(Application.Trim(txt$), " ") If Len(word) > 1 Then If StrConv(word, vbProperCase) = word Then If StrConv(word, vbUpperCase) <> word Then FirstProperCaseWord = word: Exit Function End If End If End If Next End Function
Пример использования:
Sub ПримерИспользования_FirstProperCaseWord() txt = "с. Нагутское, ул. Первомайская, д. 85" MsgBox FirstProperCaseWord(txt) End Sub
Комментарии
Что-то пустое сообщение возвращает.
В VBA есть для этого специальная функция - StrReverse
Чтобы пользоваться ей на листе, можно сделать пользовательскую функцию:
Формулы будут выглядеть так:
=reverse(A1)
Немного не по этой теме, но мне нужен переворот слова, советуют ReverseWord. Как включить?
администратор сайта: спасибо за совет. вроде получилось. в строке формул видно что впереди числа стоит ', но в текстовый файл сохраняет как надо-только 4 цифири.
Так попробуйте:
МАСТЕР ОФФ: спасибо за ответ. первый вариант, к сожалению, не подходит-нужен именно ноль(критично. штрих-код). а второй-не получается-начинает формировать коммент.
Админ, ну чё ты так чайнегов гоняешь, это ж чистый траф?
А по сути:
ActiveSheet.UsedRange.Replace What:="692-000", Replacement:="0692", LookAt:=xlWhole, MatchCase:=True
замени 0 на O
ActiveSheet.UsedRange.Replace What:="692-000", Replacement:="O692", LookAt:=xlWhole, MatchCase:=True
либо замени " на '
Я не отвечаю на вопросы, заданные в комментах к первой попавшейся статье.
Для подобных вопросов есть форумы по Excel...
а подскажите, плиз, почему
ActiveSheet.UsedRange.Replace What:="692-000", Replacement:="0692", LookAt:=xlWhole, MatchCase:=True
упорно возвращает 692 а ноль сжирает?
пардон, что не по теме макроса
Отправить комментарий