powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Транслитерация
5 сообщений из 5, страница 1 из 1
Транслитерация
    #35771624
Добрый день, подскажите, пожалуйста, я нашла такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Function Translit(myNum)
iRussian$ = "абвгд.............."
iTranslit = Array("", "a", "b", "v", "g", "d", _
"e", "jo", "zh", "z", "i", "ó", "k", "l", "m", _
"n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", _
"ch", "sh", "sch", "''", "'y", "'", "ye", "yu", "ya")

For iCount% =  1  To  33 

iValue$ = Replace(iValue$, Mid(iRussian$, iCount%,  1 ), _
iTranslit(iCount%), , , vbTextCompare) 'MS Excel 2000
Next
Translit = StrConv(iValue$, vbProperCase) 'Ivan Taranov
End Function

в итоге я хочу вставлять в ячейку эту функцию (C2=Translit(C2)) и получать транслитерацию.
но моя ф-ция не работает. помогите, пожалуйста.
...
Рейтинг: 0 / 0
Транслитерация
    #35771715
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может можно проще.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Public Function Translit(rng As Excel.Range) As String
    Dim intI As Integer
    Dim iCount As Integer
    Dim iTranslit() As Variant
    Dim iRussian As String
    Dim strTemp As String
    Dim strTemp2 As String
    
    iRussian = "абвгдеёжзи"
    iTranslit = Array("", "a", "b", "v", "g", "d", _
    "e", "jo", "zh", "z", "i", "o", "k", "l", "m", _
    "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", _
    "ch", "sh", "sch", "''", "'y", "'", "ye", "yu", "ya")

    For intI =  1  To Len(rng)
        For iCount =  1  To  33 
            strTemp = Replace(Mid(rng, intI,  1 ), Mid(iRussian, iCount,  1 ), _
              iTranslit(iCount), , , vbTextCompare)
            
            If Mid(rng, intI,  1 ) <> strTemp Or Mid(rng, intI,  1 ) = " " Or _
              Mid(rng, intI,  1 ) = "-" Then
                strTemp2 = strTemp2 & strTemp
                Exit For
            End If
        Next iCount
    Next intI
    
    Translit = strTemp2
End Function

Ячейка A1 -"где-же где жде".
Ячейка A2 - "=Translit(A1)" - "gde-zhe gde zhde".

Кстати, в списке замен, ошибка. После "i" идет "o".

Код: plaintext
1.
2.
3.
    iTranslit = Array("", "a", "b", "v", "g", "d", _
    "e", "jo", "zh", "z", "i", "o", "k", "l", "m", _
    "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", _
    "ch", "sh", "sch", "''", "'y", "'", "ye", "yu", "ya")
...
Рейтинг: 0 / 0
Транслитерация
    #35771786
Ashton, спасибо вам большое :)
только я теперь не разберусь.. в ячейке B3=Приходченко
ячейка D3 = =Translit(B3) = rsitspeshyeolp

может, я со списком замен напутала?


Код: plaintext
1.
2.
iRussian = "абвгдеєжзиіїйклмнопрстуфхцчшщюя"
    iTranslit = Array("a", "b", "v", "g", "d", "e", "ye", "zh", "z", "y", "i", "yi", "y", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", "sh", "sch", "yu", "ya")
...
Рейтинг: 0 / 0
Транслитерация
    #35771806
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так, все ок.

Код: plaintext
1.
2.
3.
4.
5.
    iRussian = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"

    iTranslit = Array("", "a", "b", "v", "g", "d", _
    "e", "jo", "zh", "z", "i", "i", "k", "l", "m", _
    "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", _
    "ch", "sh", "sch", "''", "'y", "'", "ye", "yu", "ya")

Код: plaintext
prikhodchenko
...
Рейтинг: 0 / 0
Транслитерация
    #35771898
Спасибо Вам огромное, Ashton, все получилось и все работает :)
научиться бы так самой программировать :)!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Транслитерация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]