Найти тему
Иван Карпов

Текст в ячейке задом наперёд

Добрый день, уважаемые читатели блога! Продолжаем серию уроков по Microsoft Excel и сегодня мы отойдём от привычного создания макросов, рассмотрения приёмов, различных тонкостей. 

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

Перед нами стоит задача — отобразить текст в ячейке (произвольный) в обратном порядке. Пример: «Привет!», — в соседней ячейке появится: «!тевирП». 

В таком случае можно использовать макрос, но количество действий, его (макроса) постоянный вызов не улучшат, а затруднят работу с таблицей. 

Воспользуемся возможностью создания своих функций. Благо для этого нам подойдёт алгоритм создания макроса. 

Добавляем новый модуль в наш документ:

  • Вкладка «Разработчик», блок кнопок «Код», кнопка «Visual Basic»;
  • Далее «Insert» — > «Module».
-2

Добавим следующий текст в наш модуль:

Function dhReverseText(strText As String) As String
Dim i As Integer

For i = Len(strText) To 1 Step -1
dhReverseText = dhReverseText & Mid(strText, i, 1)
Next i
End Function

-3

Разберём где у нас что:

  • «Function dhReverseText(strText As String) As String» — название функции и объявление её типом строка;
  • «Dim i As Integer» — объявление переменной i;
  • «For i = Len(strText) To 1 Step -1» — для каждой переменной i типа строка устанавливаем обратный порядок расположения символов (Len — возвращает количество символов в ячейке);
  • «dhReverseText = dhReverseText & Mid(strText, i, 1)» — указываем функции, что двигаться нужно от конца к началу;
  • «Next i» — обработка следующего символа.

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

-4

Результат будет такой.

-5

Мы создали первую собственную функцию! 

Вам также может понравиться статья — Вставка гиперссылок на листы таблицы.

Наука
7 млн интересуются