Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Замена текста в WORD - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Замена текста в WORD
19kip Дата: Четверг, 21.05.2015, 10:08 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
В тексте имеется большое количество слов типа рис.1а, рис.2а и... рис.nа (n-цифра) нужно заменить на рис.1б, рис.2б и... рис.nб (соответственно, чтобы не изменялась цифра) Спасибо.
 
Ответить
СообщениеДобрый день.
В тексте имеется большое количество слов типа рис.1а, рис.2а и... рис.nа (n-цифра) нужно заменить на рис.1б, рис.2б и... рис.nб (соответственно, чтобы не изменялась цифра) Спасибо.

Автор - 19kip
Дата добавления - 21.05.2015 в 10:08
Anton1013 Дата: Четверг, 21.05.2015, 11:42 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 203
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
День добрый.
Можно через ctrl+h yes .
Соответственно в 1 строку "рис 1а"
во вторую "рис 2б" ну или что еще нужно :)


Никогда не поздно научиться!

Сообщение отредактировал Anton1013 - Четверг, 21.05.2015, 11:43
 
Ответить
СообщениеДень добрый.
Можно через ctrl+h yes .
Соответственно в 1 строку "рис 1а"
во вторую "рис 2б" ну или что еще нужно :)

Автор - Anton1013
Дата добавления - 21.05.2015 в 11:42
19kip Дата: Четверг, 21.05.2015, 11:56 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Anton1013,
Цифры трогать не надо, а менять только буквы. Нужно ка-кто "пометить цифру", чтобы её не затрагивать
Что-то типа рис.*а, заменить на рис.*б и в тексте сделалось n-ое количество замен.
 
Ответить
СообщениеAnton1013,
Цифры трогать не надо, а менять только буквы. Нужно ка-кто "пометить цифру", чтобы её не затрагивать
Что-то типа рис.*а, заменить на рис.*б и в тексте сделалось n-ое количество замен.

Автор - 19kip
Дата добавления - 21.05.2015 в 11:56
Anton1013 Дата: Четверг, 21.05.2015, 16:58 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 203
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
19kip, На сколько я знаю, вроде бы есть возможность заменить 1 букву на символ, и он ее не будет учитывать при замене. Только не в курсе как его приписать. А так, если рисунков не очень много можно быстро пробежаться по каждому.


Никогда не поздно научиться!
 
Ответить
Сообщение19kip, На сколько я знаю, вроде бы есть возможность заменить 1 букву на символ, и он ее не будет учитывать при замене. Только не в курсе как его приписать. А так, если рисунков не очень много можно быстро пробежаться по каждому.

Автор - Anton1013
Дата добавления - 21.05.2015 в 16:58
RAN Дата: Пятница, 22.05.2015, 00:42 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub Мяв()
     With CreateObject("VBScript.RegExp")
         .Global = True: .IgnoreCase = False: .MultiLine = False
         .Pattern = "(рис.\d+)а"
         If .test(ActiveDocument.Range.Text) Then
             s = .Replace(ActiveDocument.Range.Text, "$1b")
             ActiveDocument.Range.Text = s
         End If
     End With
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub Мяв()
     With CreateObject("VBScript.RegExp")
         .Global = True: .IgnoreCase = False: .MultiLine = False
         .Pattern = "(рис.\d+)а"
         If .test(ActiveDocument.Range.Text) Then
             s = .Replace(ActiveDocument.Range.Text, "$1b")
             ActiveDocument.Range.Text = s
         End If
     End With
End Sub
[/vba]

Автор - RAN
Дата добавления - 22.05.2015 в 00:42
Skif-F Дата: Среда, 27.05.2015, 00:52 | Сообщение № 6
Группа: Проверенные
Ранг: Участник
Сообщений: 73
Репутация: 14 ±
Замечаний: 0% ±

Excel 2007, 2010, 2013, 2016
А так не портит форматирование:
[vba]
Код
Sub Замена()
     Dim w As Range, t As String
     'Первое слово в тексте
     Set w = ActiveDocument.Words.First
     Do Until w Is Nothing   'перебираем до конца документа
         'Поскольку "рис.1а" для Ворда - три слова
         'то набираем выражение постепенно
         t = t & w.Text
         If t Like "рис.#а" Then
             'Если мы нашли искомое, заменяем последний знак в текущем обрабатываемом слове
             w.Text = Mid(t, Len(t) - 1, 1) & "б"
         ElseIf t <> "рис" And t <> "рис." Then
             'Очень важно вовремя очищать временную переменную от "мусора"
             t = ""
         End If
         'Переходим к следующему слову в документе
         Set w = w.Next(Unit:=wdWord, Count:=1)
     Loop
End Sub
[/vba]
Важно: не применяйте выражения Words(i) - очень медленно!
 
Ответить
СообщениеА так не портит форматирование:
[vba]
Код
Sub Замена()
     Dim w As Range, t As String
     'Первое слово в тексте
     Set w = ActiveDocument.Words.First
     Do Until w Is Nothing   'перебираем до конца документа
         'Поскольку "рис.1а" для Ворда - три слова
         'то набираем выражение постепенно
         t = t & w.Text
         If t Like "рис.#а" Then
             'Если мы нашли искомое, заменяем последний знак в текущем обрабатываемом слове
             w.Text = Mid(t, Len(t) - 1, 1) & "б"
         ElseIf t <> "рис" And t <> "рис." Then
             'Очень важно вовремя очищать временную переменную от "мусора"
             t = ""
         End If
         'Переходим к следующему слову в документе
         Set w = w.Next(Unit:=wdWord, Count:=1)
     Loop
End Sub
[/vba]
Важно: не применяйте выражения Words(i) - очень медленно!

Автор - Skif-F
Дата добавления - 27.05.2015 в 00:52
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!