Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2011, 10:49   #1
maximyn
 
Регистрация: 19.06.2011
Сообщений: 5
По умолчанию Склонения ФИО

Добрый день!
Модераторы а можно ли перенаправить тему в excel

Код:
Function Conv1(Cell As Range) As String

    Dim i As Integer, a, b, c: a = Split(Application.Trim(Cell), " ")
    
    b = Array("ян", "ов", "ев", "ко", "ий", "ин", "ур", "ик", "он", "ид") 'Окончания, которые будем изменять
    c = Array("яну", "ову", "еву", "ко", "ому", "ину", "уру", "ику", "ону", "иду") 'Окончания, которыми будем заменять
    
   
    For i = LBound(b) To UBound(b)
        If Right(a(0), 2) = b(i) Then
            Conv1 = Left(a(1), 1) & "." & Left(a(2), 1) & ". " & Left(a(0), Len(a(0)) - 2) & c(i)
            Exit Function
        ElseIf Right(a(0), 1) = b(i) Then
            Conv1 = Left(a(1), 1) & "." & Left(a(2), 1) & ". " & Left(a(0), Len(a(0)) - 1) & c(i)
            Exit Function
        End If
    Next
    
End Function
Данная функция исправляет окончания из Именительного в Дательный, например, Иванов Иван Иванович – И.И. Иванову. Это при условии, что у меня есть Фамилия имя отчество. Не могли бы подсказать, что надо дописать, что бы, если у меня только фамилия и имя он бы добавлял г-ну (оставляя имя в именительном падеже), например, Отис Сайдер – г-ну Отис Сайдер.

Большое спасибо все за помощь.

Последний раз редактировалось maximyn; 22.06.2011 в 10:52.
maximyn вне форума Ответить с цитированием
Старый 22.06.2011, 11:03   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Попробуйте
Код:
Function Conv1(Cell As Range) As String

    Dim i As Integer, a, b, c: a = Split(Application.Trim(Cell), " ")
    
    b = Array("ян", "ов", "ев", "ко", "ий", "ин", "ур", "ик", "он", "ид") 'Окончания, которые будем изменять
    c = Array("яну", "ову", "еву", "ко", "ому", "ину", "уру", "ику", "ону", "иду") 'Окончания, которыми будем заменять
    
    If UBound(a) > 1 Then
        For i = LBound(b) To UBound(b)
            If Right(a(0), 2) = b(i) Then
                Conv1 = Left(a(1), 1) & "." & Left(a(2), 1) & ". " & Left(a(0), Len(a(0)) - 2) & c(i)
                Exit Function
            ElseIf Right(a(0), 1) = b(i) Then
                Conv1 = Left(a(1), 1) & "." & Left(a(2), 1) & ". " & Left(a(0), Len(a(0)) - 1) & c(i)
                Exit Function
            End If
        Next
    Else
        Conv1 = "г-ну " & Join(a)
    End If
End Function

------------- примечание модератора --------------------
Функции склонения, для использования в макросах,
или в качестве пользовательской функции на листе Excel:

Родительный падеж на VBA
Дательный падеж на VBA
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось EducatedFool; 29.01.2013 в 02:08.
Казанский вне форума Ответить с цитированием
Старый 22.06.2011, 13:27   #3
maximyn
 
Регистрация: 19.06.2011
Сообщений: 5
По умолчанию

Привет.
Большое спасибо за помощь.
А ты с должностями не сможешь помочь.
Из генерального директора – генеральному директору
Из президента – президенту
Я так думаю через этот код вряд-ли такое можно организовать

С уважением, Макс.
maximyn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ФИО в сокращенном варианте NZero SQL, базы данных 11 30.10.2014 08:37
Склонения слов по падежам tae1980 Microsoft Office Excel 15 25.06.2011 10:41
Скрипт склонения имени Zlodar Помощь студентам 1 19.05.2011 11:51
Использование dll бибилотеки или функции для склонения ФИО Yakovenko Microsoft Office Excel 4 06.02.2011 07:13
Столбец для ФИО Kraimon Microsoft Office Excel 5 27.01.2011 22:02