powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / модернизировать макрос.
12 сообщений из 12, страница 1 из 1
модернизировать макрос.
    #35686289
maccen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть макрос транслитерации (транслит), макрос рабочий, но он перевдит слово только в текущей ячейке (активной), как модифицировать его так, чтобы он переводил например весь столбец
А1 только.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Function Translit$(iValue$)
iRussian$ = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
iTranslit = Array("", "A", "B", "V", "G", "D", "E", "Jo", "Zh", "Z", "I", "Jj", "K", "L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "H", "C", "Ch", "Sh", "Zch", "''", "'Y", "'", "Eh", "Ju", "Ja", "a", "b", "v", "g", "d", "e", "jo", "zh", "z", "i", "jj", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "c", "ch", "sh", "zch", "''", "'y", "'", "eh", "ju", "ja")

For iCount% =  1  To  65 
iValue$ = Replace(iValue$, Mid(iRussian$, iCount%,  1 ), iTranslit(iCount%), , , vbTextCompare) 'MS Excel 2000
Next
Translit$ = iValue$
End Function


Sub IspTranslit()
For Each cell In Selection
cell.Value = Translit(cell.Value)
Next
End Sub


Думаю он будет полезен не только мне :) Всем заранее спасибо за ответы!
...
Рейтинг: 0 / 0
модернизировать макрос.
    #35686313
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак его модернизировать не нужно. Он уже может обработать хоть двадцать столбцов за раз.
...
Рейтинг: 0 / 0
модернизировать макрос.
    #35686337
maccen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне нужен только определенный столбец чтобы переводило в транслит. Чтобы это было "вшито" в программу.
...
Рейтинг: 0 / 0
модернизировать макрос.
    #35686708
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я "вшил" для тебя эту функцию в файл. См. пример )
...
Рейтинг: 0 / 0
модернизировать макрос.
    #35687513
maccen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо! все супер! работает, тему можно закрывать!
...
Рейтинг: 0 / 0
модернизировать макрос.
    #35687665
maccen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм, а как быть с украинским языком, так и не понял, вот поменял вроде все правильно на:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Option Explicit

Function Translit$(iValue$)
Dim iRussian$, iCount%, iTranslit As Variant

    iRussian$ = "АБВГДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯабвгдеєжзиіїйклмнопрстуфхцчшщьюя"

    iTranslit = Array("", "A", "B", "V", "G", "D", "E", "Je", "Zh", "Z", "Y", "I", "I'", "J", "K", "L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "H", "C", "Ch", "Sh", "Shh", "'", "Ju", "Ja", "a", "b", "v", "g", "d", "e", "je", "zh", "z", "y", "i", "i'", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "c", "ch", "sh", "shh", "'", "ju", "ja")
    
    For iCount% =  1  To  65 
        iValue$ = Replace(iValue$, Mid(iRussian$, iCount%,  1 ), iTranslit(iCount%), , , vbBinaryCompare)  'MS Excel 2000
    Next
    Translit$ = iValue$
End Function

Sub IspTranslit()
Dim rCell As Range
    For Each rCell In Selection
        rCell.Value = Translit(rCell.Value)
    Next
End Sub


и не работает :( в чем может быть проблема натолкните на мысль
...
Рейтинг: 0 / 0
модернизировать макрос.
    #35687703
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Замените цифру 65 на 64 в этой строке

Код: plaintext
For iCount% =  1  To  65 
...
Рейтинг: 0 / 0
модернизировать макрос.
    #35688060
maccen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel55
спасибо, все заработало.
Как сделать, чтобы без выделения стоблца, а просто чтобы в самом макросе было указано какой диапазон нужно транслитировать после нажатия кнопки.
...
Рейтинг: 0 / 0
модернизировать макрос.
    #35698931
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, давно не заходил на этот сайт. Времени из-за работы очень мало (

Вот так можно указать какой диапазон будет переводится в транслит

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub IspTranslit()
Dim rCell As Range, Rng As Range
    
    Set Rng = Range("A1:A10") 'тут указываете свой диапазон
    For Each rCell In Rng
        rCell.Value = Translit(rCell.Value)
    Next
End Sub

P.S. Не забудьте добавить саму функцию рядом с этим кодом.
...
Рейтинг: 0 / 0
модернизировать макрос.
    #35699916
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему русские буквы в строке? а не тоже в массиве?

да и 65 шагов цикла.. по-моему зря
...
Рейтинг: 0 / 0
модернизировать макрос.
    #35845034
the_stoned
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ап!

Привет всем! Прошу помощи.. Как переделать макрос описанный выше так, чтобы он брал русское значение в одном столбце, а транслит записывал в другой столбец. Например в ячейке B5 "Иванов", тогда в ячейку F5 помещаем "Ivanov".

Спасибо!
...
Рейтинг: 0 / 0
модернизировать макрос.
    #35849517
VLA91MIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А может Iwanov...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / модернизировать макрос.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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