Функции для работы с фамилией, именем, отчеством и инициалами в VBA Excel, которые можно использовать для вставки в ячейки рабочего листа в виде формул.
Для написания функций для работы с ФИО возьмем те же примеры, которые использовались для составления формул в статье: Работа с фамилией, именем, отчеством и инициалами в Excel.
Фамилия, имя и отчество в разных ячейках
Функция, объединяющая фамилию, имя и отчество из разных ячеек в одну строку:
1 2 3 4 5 6 7 8 9 |
Function Fio_1(a, b, c) As String Fio_1 = a & " " & b & " " & c End Function 'или, как вариант, с функцией Join Function Fio_1(a, b, c) As String Fio_1 = Join(Array(a, b, c), " ") End Function |
Пример использования функции Fio_1 на рабочем листе:
Функция, преобразующая фамилию, имя и отчество из разных ячеек в фамилию с инициалами:
1 2 3 |
Function Fio_2(a, b, c) As String Fio_2 = a & " " & Left(b, 1) & "." & Left(c, 1) & "." End Function |
Пример использования функции Fio_2 на рабочем листе:
Фамилия, имя и отчество в одной ячейке
Подпрограмма, распределяющая из ФИО, расположенного в одной ячейке, фамилию, имя и отчество по разным ячейкам:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub Fio_3(a As Range) Dim m m = Split(a.Value, " ") a.Offset(0, 1) = m(0) a.Offset(0, 2) = m(1) a.Offset(0, 3) = m(2) End Sub 'пример использования подпрограммы Fio_3 Sub Primer1() Fio_3 (Cells(1, 1)) End Sub |
Результат работы подпрограммы Fio_3, вызванной из процедуры Primer1:
Функция, преобразующая ФИО, расположенное в одной ячейке, в фамилию с инициалами:
1 2 3 4 5 |
Function Fio_4(a As Range) As String Dim m m = Split(a.Value, " ") Fio_4 = m(0) & " " & Left(m(1), 1) & "." & Left(m(2), 1) & "." End Function |
Пример использования функции Fio_4 на рабочем листе: