Ищем знаки после последнего пробела ПРАВСИМВДО

Простая функция-макрос для поиска текста и чисел в конце ячейки

Нужно перенести в отдельную ячейку данные, расположенные в конце ячейки после последнего пробела.

Проблема в том, что в ячейках разное количество слов и, соответственно, разное количество пробелов. А нужный нам кусок всегда в конце и тоже может состоять из разного количества символов.

Беда, казалось бы. Но я всегда говорю, что при наличии закономерности задача 100% решаема. И данный случай не исключение.

Когда я стала обдумывать решение с использованием встроенных формул, то поняла, что впереди ждёт мучение с трёхэтажной конструкцией и, возможно, использование нескольких промежуточных ячеек, количество которых непредсказуемо. Уже звучит как в фильме ужасов, правда?

Мучиться я ни себе, ни Вам не желаю, поэтому за несколько минут набросала функцию-макрос ПравСимвДО и сижу теперь довольная простым и красивым решением.

Если в ячейку нужно вытащить число – просто поставьте перед именем функции два знака минус.

Разделителем может быть любой символ или их последовательность. Окно аргументов открывается, как и для любой стандартной функции.

Коллеги, переселите эту функцию ПравСимвДО в свой файл (на бесплатном уроке«Макрос напрокат» я показывала, как это делать) и пользуйтесь на здоровье!

Function ПравСимвДО(Ячейка, Символ)
'находит указанный символ в ячейке справа и берёт все знаки после него

ns = Len(Ячейка)
nss = Len(Символ) 

For i = ns To 1 Step -1
If Mid(Ячейка, i, nss) = Символ Then
ni = i + nss 
nk = ns - ni + 1 
GoTo 1
End If
Next

1:
otvet = Mid(Ячейка, ni, nk)

ПравСимвДО = otvet
End Function

Вопрос, кстати, возник на последнем корпоративном тренинге по PowerPoint, никуда без Excel )) Надеюсь, автор вопроса увидит этот пост.

23 ноября 2020 г.

Уровень сложности программного кода - учебный. Вы легко сможете писать такие макросы сами после моего онлайн курса «МАКРОСЫ НА VBA С НУЛЯ».