Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Массовая замена слов в тексте
 
Здравствуйте, форумчане. Потребовалось создать пользовательскую функцию поиска и замены слов. Дело в том, что большинство решений, которые нашлись тут, оформлены в виде макроса, который работает по нажатию кнопки, а в данном случае нужна функция, которую можно вписать в формулу. Где-то находил похожую вещь, и использую сейчас ее, но она работает лишь частично, т.е., находит и заменяет слова идущие только в начале строки, а остальные игнорирует.
Можно ли здесь что-то изменить так, чтобы он находил слова и в середине строки и получалось, например, "ул Ленина, к. 1, оф 1" = "ул. Ленина, корп. 1, оф. 1". С данным кодом получается "ул. Ленина, к. 1, оф 1". Никак не могу сообразить=\.
Заранее спасибо!

P.S. Быть может, можно было оформить это каким-то другим способом, но я пока совсем профан в vba.
Код
Function GetAbbr(ByVal Source As String) As String
'функция сокращения
Source = Trim(Source)

    If Source Like "село *" Then
        GetAbbr = "с." & Mid(Source, 5)
    ElseIf Source Like "поселок *" Then
        GetAbbr = "пос." & Mid(Source, 8)
    ElseIf Source Like "г *" Then
        GetAbbr = "г." & Mid(Source, 2)
    ElseIf Source Like "поселок городского типа *" Then
        GetAbbr = "пгт " & Mid(Source, 23)
    ElseIf Source Like "республика *" Then
        GetAbbr = "респ. " & Mid(Source, 12)
    ElseIf Source Like "область *" Then
        GetAbbr = "обл. " & Mid(Source, 8)
    ElseIf Source Like "ул *" Then
        GetAbbr = "ул." & Mid(Source, 3)
    ElseIf Source Like "пер *" Then
        GetAbbr = "пер." & Mid(Source, 4)
    ElseIf Source Like "к. *" Then
        GetAbbr = "корп." & Mid(Source, 3)
    ElseIf Source Like "оф *" Then
        GetAbbr = "оф." & Mid(Source, 3)
    Else
        GetAbbr = Source
    End If

End Function
Является ли город в ячейке административным центром
 
Здравствуйте, уважаемые знатоки Excel. Пытался найти решение подобного вопроса по форуму и действительно есть много похожих тем, но все немного не то, а изменить их под свой вариант то ли мозгов не хватает то ли знаний.

Нужна формула для того чтобы определить, является ли город в ячейке административным центром или нет. Вроде уже и ВПР попробовал, и ПОИСК. В итоге ПОИСК первую ячейку он определяет правильно, а другие найти не может. А ВПР просто выдает значение #N/A, даже если предварительно удалять все пробелы из исходной ячейки.
Подскажите, пожалуйста, и не ругайте сильно если решение уже было, но не определил что это оно. И извиняюсь за дилетантский подход, ранее не имел дела с Excel и VBA и пришлось разбираться, увы, "на ходу". Спасибо!

P.S. В evaluate вижу что он находит значение "Новосибирск" через ПОИСК в массиве административных центров и сопоставляет его с ячейкой, но ПОИСК почему-то все равно выдает значение #ЗНАЧ. Может быть, легче было бы написать пользовательскую функцию через VBA, в этом случае, может быть, посоветуете, каким способом вообще можно к этому подступиться? В идеале мне нужно будет вообще по всем субъектам РФ сделать это, а где-то видел, что есть ограничение по вложенности функций, т.е., как я понимаю, все значения в функцию забивать будет не вариант.
Страницы: 1
Наверх