Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / замена строки - французские буквы в xls файле / 15 сообщений из 15, страница 1 из 1
17.05.2010, 11:08
    #36631568
Sator Arepo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Всем привет
Есть задача - массовая замена французских слов на русские.
Например, нужно заменить 'Caractéristiques générales' на 'Общие характеристики' на всей странице.
Ручной вызов панели поиска/замены приводит к тому, что заменяется только небольшая часть (14 совпадений), а потом Эксель (2003) выбрасывает диалоговое окно с сообщением "слишком сложная формула" и не делает ничего.
Попытка открытия файла и замены через 'Блокнот' приводит к тому, что все заменяется как надо (в Блокноте), но файл затем в Экселе не открывается.
Начал писать процедуру - но сразу столкнулся с тем, что копи-пейст в редактор ВБА удаляет буквы с акцентами и прочими над- и подстрочными символами

Код: plaintext
1.
2.
3.
4.
Sub ReplaceString()
    Dim sToReplace As String
    sToReplace = "Caract?ristiques g?n?rales"
    
End Sub

Вручную менять неохота. Какой выход посоветует общественность?
...
Рейтинг: 0 / 0
17.05.2010, 11:13
    #36631580
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Sator Arepo,
попробуйте использовать Chrw()
...
Рейтинг: 0 / 0
17.05.2010, 11:29
    #36631624
Sator Arepo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Hugo121Sator Arepo,
попробуйте использовать Chrw()
Пока не понимаю, как эта функция может облегчить мне жизнь. Можете алгоритм описать?
...
Рейтинг: 0 / 0
17.05.2010, 11:39
    #36631644
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Hugo121 как Вы представляете себе, при помоши переводить слова, а не БУКВЫ?????????????????????????
...
Рейтинг: 0 / 0
17.05.2010, 11:40
    #36631646
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Упс
Hugo121 как Вы представляете себе, при помоши Chrw() переводить слова, а не БУКВЫ?????????????????????????
...
Рейтинг: 0 / 0
17.05.2010, 11:45
    #36631662
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Sator Arepo,

Код: plaintext
1.
2.
3.
4.
Sub ReplaceString()
    Dim sToReplace As String
    sToReplace = "Caract" & Chrw( 233 ) & "ristiques g" & Chrw( 233 ) & "n" & Chrw( 233 ) & "rales"
End Sub
...
Рейтинг: 0 / 0
17.05.2010, 11:58
    #36631701
Sator Arepo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Hugo121Sator Arepo,

Код: plaintext
1.
2.
3.
4.
Sub ReplaceString()
    Dim sToReplace As String
    sToReplace = "Caract" & Chrw( 233 ) & "ristiques g" & Chrw( 233 ) & "n" & Chrw( 233 ) & "rales"
End Sub

Я примерно так и думал. Только дело в том, что поменять нужно не одну фразу. Т.е. в идеале, видимо, нужено генератор подобных строк, составленных из функции Chrw(). Т.е на входе - строка с юникодными символами, на выходе - строка, сцепленная из функции Chrw(). Где бы такое взять?
...
Рейтинг: 0 / 0
17.05.2010, 12:01
    #36631715
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
HUGO121. Вот так? Если да то это абсурд.
...
Рейтинг: 0 / 0
17.05.2010, 12:03
    #36631723
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Sator Arepo, ну может сперва заменить по всему листу такие символы на символы без диакритических знаков, а затем уже заменять полученное обычным способом. Ведь таких символов не так уж много.
...
Рейтинг: 0 / 0
17.05.2010, 12:07
    #36631737
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Я понял задачу так - есть некий конечный набор слов, которые надо автоматом заменить на другой набор слов, а проблема в этих символах. Если конечно Вы собрались переводить книгу, тогда такой подход не годится, хотя заменить все такие символы на аналоги таким способом можно (сколько их там таких, ведь не больше пары десятков?).
...
Рейтинг: 0 / 0
17.05.2010, 12:09
    #36631740
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Вот например такой код вполне заменил Ваши слова на моё - грубый пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub ReplaceString()
    Dim sToReplace As String
    sToReplace = "Caract" & ChrW( 233 ) & "ristiques g" & ChrW( 233 ) & "n" & ChrW( 233 ) & "rales"
    For Each cc In Columns( 3 ).Cells
    If cc.Value = sToReplace Then cc.Value = "zamena"
    Next
End Sub
...
Рейтинг: 0 / 0
17.05.2010, 12:21
    #36631772
Sator Arepo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Hugo121, спасибо.
Задачу Вы поняли правильно. Набор строк для автоматической замены небольшой, поэтому такой подход приемлем.
у меня получилось так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub ReplaceString()
    Dim sToReplace As String
    sToReplace = "Caract" & ChrW( 233 ) & "ristiques g" & ChrW( 233 ) & "n" & ChrW( 233 ) & "rales"
    'Debug.Print sToReplace
    Dim rng As Range
    Dim sReplaceWith As String
    sReplaceWith = "Общие характеристики"
'    sToReplace = " mm "
'    sReplaceWith = " мм "
    Dim sDummy As String
    For Each rng In Range("F2", "F174")
'        Debug.Print rng.Value
        sDummy = rng.Value
        rng.Value = Replace(sDummy, sToReplace, sReplaceWith)
    Next
    
End Sub
sDummy кажись лишняя, ну да ладно. Спасибо
...
Рейтинг: 0 / 0
17.05.2010, 12:27
    #36631789
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Sator Arepo,
ну и хорошо.
Я такой подход использовал, когда надо было кодом занести в ячейку слово типа "générales" - т.е. обратная задача была :)
...
Рейтинг: 0 / 0
17.05.2010, 12:39
    #36631816
Sator Arepo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Hugo121Sator Arepo,
ну и хорошо.
Я такой подход использовал, когда надо было кодом занести в ячейку слово типа "générales" - т.е. обратная задача была :)
Кстати, обратная замена "общие" => "générales" вручную - сработала!
Добавление французской раскладки, кстати, не помогло для правильного изображения французских букв в редакторе ВБА (попробовал, исходя из известного факта, что русский текст правильно копипейстится в редактор только при активной русской раскладке.
...
Рейтинг: 0 / 0
17.05.2010, 12:44
    #36631829
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки - французские буквы в xls файле
Ну и тогда уж докучи код, помогающий выяснить эти ChrW:

Код: plaintext
1.
2.
3.
4.
5.
Sub ShowChrW()
For i =  1  To  30000 
Cells(i,  1 ).Value = ChrW(i)
Next i
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / замена строки - французские буквы в xls файле / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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