Vlad250
Дата: Воскресенье, 05.01.2014, 23:59 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
40% ±
Excel 2007
После сохранение макроса в личной книге макросов, функция translit не работает в других документах, необходимо копировать модуль в эти книги сам макрос: [vba]Код
Function Translit(ByVal txt As String) As String iRussian$ = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" iTranslit = Array("", "a", "b", "v", "g", "d", "e", "yo", "jh", "z", "i", "y", "k", _ "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "z", "ch", _ "sh", "shz", "`", "i", "'", "e", "yu", "ya") For iCount% = 1 To 33 txt = Replace(txt, Mid(iRussian$, iCount%, 1), iTranslit(iCount%), , , vbTextCompare) Next Translit$ = txt End Function Sub ПримерИспользованияФункцииTranslit() txt = "проверка работы транслита" newtxt = Translit(txt) ' результат = строка "proverka rabot'y translita" MsgBox "Строка """ & txt & """" & vbNewLine & "преобразована в строку """ _ & newtxt & """", vbInformation, "Результат обработки" End Sub
[/vba] Можно ли сделать, чтобы функция translit работала во всех вновь открытых файлах? Нигде не смог найти решение
После сохранение макроса в личной книге макросов, функция translit не работает в других документах, необходимо копировать модуль в эти книги сам макрос: [vba]Код
Function Translit(ByVal txt As String) As String iRussian$ = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" iTranslit = Array("", "a", "b", "v", "g", "d", "e", "yo", "jh", "z", "i", "y", "k", _ "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "z", "ch", _ "sh", "shz", "`", "i", "'", "e", "yu", "ya") For iCount% = 1 To 33 txt = Replace(txt, Mid(iRussian$, iCount%, 1), iTranslit(iCount%), , , vbTextCompare) Next Translit$ = txt End Function Sub ПримерИспользованияФункцииTranslit() txt = "проверка работы транслита" newtxt = Translit(txt) ' результат = строка "proverka rabot'y translita" MsgBox "Строка """ & txt & """" & vbNewLine & "преобразована в строку """ _ & newtxt & """", vbInformation, "Результат обработки" End Sub
[/vba] Можно ли сделать, чтобы функция translit работала во всех вновь открытых файлах? Нигде не смог найти решение Vlad250
Сообщение отредактировал Serge_007 - Понедельник, 06.01.2014, 00:02
Ответить
Сообщение После сохранение макроса в личной книге макросов, функция translit не работает в других документах, необходимо копировать модуль в эти книги сам макрос: [vba]Код
Function Translit(ByVal txt As String) As String iRussian$ = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" iTranslit = Array("", "a", "b", "v", "g", "d", "e", "yo", "jh", "z", "i", "y", "k", _ "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "z", "ch", _ "sh", "shz", "`", "i", "'", "e", "yu", "ya") For iCount% = 1 To 33 txt = Replace(txt, Mid(iRussian$, iCount%, 1), iTranslit(iCount%), , , vbTextCompare) Next Translit$ = txt End Function Sub ПримерИспользованияФункцииTranslit() txt = "проверка работы транслита" newtxt = Translit(txt) ' результат = строка "proverka rabot'y translita" MsgBox "Строка """ & txt & """" & vbNewLine & "преобразована в строку """ _ & newtxt & """", vbInformation, "Результат обработки" End Sub
[/vba] Можно ли сделать, чтобы функция translit работала во всех вновь открытых файлах? Нигде не смог найти решение Автор - Vlad250 Дата добавления - 05.01.2014 в 23:59
AndreTM
Дата: Понедельник, 06.01.2014, 01:06 |
Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
500
±
Замечаний:
0% ±
2003 & 2010
Ну, как бы можно использовать стандартный вызов функции из другой книги. Поскольку Personal.xls* после создания будет всегда открыта, то делаем так: [vba]Код
newtxt = Application.Run("personal.xlsb!Translit", txt)
[/vba] Если надо использовать данную функцию прямо в ячейке - то аналогично: =PERSONAL.XLSB!Translit(A1)
Ну, как бы можно использовать стандартный вызов функции из другой книги. Поскольку Personal.xls* после создания будет всегда открыта, то делаем так: [vba]Код
newtxt = Application.Run("personal.xlsb!Translit", txt)
[/vba] Если надо использовать данную функцию прямо в ячейке - то аналогично: =PERSONAL.XLSB!Translit(A1) AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Сообщение отредактировал AndreTM - Понедельник, 06.01.2014, 01:09
Ответить
Сообщение Ну, как бы можно использовать стандартный вызов функции из другой книги. Поскольку Personal.xls* после создания будет всегда открыта, то делаем так: [vba]Код
newtxt = Application.Run("personal.xlsb!Translit", txt)
[/vba] Если надо использовать данную функцию прямо в ячейке - то аналогично: =PERSONAL.XLSB!Translit(A1) Автор - AndreTM Дата добавления - 06.01.2014 в 01:06