Необх-мо найти выделенный текст и подчеркнуть
Необх-мо в Worde найти выделенный текст (залито зеленым цветом) и подчеркнуть.
2 Ответ от Ципихович Эндрю 29.04.2012 19:43:24- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
выделяете нужное и магнитофон на запись, ок?
3 Ответ от cobra77777 30.04.2012 04:59:41- cobra77777
- сержант
- Неактивен
- Зарегистрирован: 29.04.2012
- Сообщений: 10
выделяете нужное и магнитофон на запись, ок?
почему то не работает
Selection.HomeKey Unit:=wdStorySelection.Find.ClearFormattingSelection.Find.Text = wdGreenWhile Selection.Find.Execute = True i = 0 While Selection.Text <> wdGreen Selection.MoveLeft Unit:=wdCharacter, Count:=15, Extend:=wdExtend Selection.Font.UnderlineColor = wdColorAutomatic Selection.Font.Underline = wdUnderlineSingle i = i + 1
пример.doc 21.5 Кб, 1 скачиваний с 2012-04-30
You don't have the permssions to download the attachments of this post.
4 Ответ от Ципихович Эндрю 30.04.2012 05:04:27- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
вы реально на запись ставили?
5 Ответ от cobra77777 30.04.2012 05:44:48- cobra77777
- сержант
- Неактивен
- Зарегистрирован: 29.04.2012
- Сообщений: 10
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
я тоже поставил
Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With If Selection.Font.Underline = wdUnderlineNone Then Selection.Font.Underline = wdUnderlineSingle Else Selection.Font.Underline = wdUnderlineNone End If
не увидел магическихWendWend
7 Ответ от Ципихович Эндрю 30.04.2012 06:58:02- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
согласен, эту строку Selection.HomeKey Unit:=wdStory вверху можно оставить
8 Ответ от cobra77777 30.04.2012 07:17:56- cobra77777
- сержант
- Неактивен
- Зарегистрирован: 29.04.2012
- Сообщений: 10
я тоже поставил
Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With If Selection.Font.Underline = wdUnderlineNone Then Selection.Font.Underline = wdUnderlineSingle Else Selection.Font.Underline = wdUnderlineNone End If
не увидел магическихWendWend
я так понимаю в строках нужно дописать след-ее: With Selection.Find .Text = wdGreen .Replacement.Text = ""Selection.Font.Underline = wdUnderlineSingle
9 Ответ от cobra77777 30.04.2012 07:19:12- cobra77777
- сержант
- Неактивен
- Зарегистрирован: 29.04.2012
- Сообщений: 10
я тоже поставил
Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With If Selection.Font.Underline = wdUnderlineNone Then Selection.Font.Underline = wdUnderlineSingle Else Selection.Font.Underline = wdUnderlineNone End If
не увидел магическихWendWend
я так понимаю в строках нужно дописать след-ее: With Selection.Find .Text = wdGreen .Replacement.Text = Selection.Font.Underline = wdUnderlineSingle
10 Ответ от Ципихович Эндрю 30.04.2012 07:30:44- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
.Text = wdGreen - нет, это то что ищете, как Вы указали вы ищете переменную wdGreen, то есть если бы выше было wdGreen = "ав", это бы означало, что Вы ищете ав, а так ничего не ищем - т.е. любой текст .Replacement.Text = ""Selection.Font.Underline = wdUnderlineSingle - нет, это то на что меням, ни на что не меняемТо есть ничего не ищем и ни на что не меняем, просто выделяем, а потом выделенное подчёркиваем
11 Ответ от cobra77777 30.04.2012 08:12:51- cobra77777
- сержант
- Неактивен
- Зарегистрирован: 29.04.2012
- Сообщений: 10
.Text = wdGreen - нет, это то что ищете, как Вы указали вы ищете переменную wdGreen, то есть если бы выше было wdGreen = "ав", это бы означало, что Вы ищете ав, а так ничего не ищем - т.е. любой текст .Replacement.Text = ""Selection.Font.Underline = wdUnderlineSingle - нет, это то на что меням, ни на что не меняемТо есть ничего не ищем и ни на что не меняем, просто выделяем, а потом выделенное подчёркиваем
Недоработка в коде есть, в том плане, что когда я выделяю весь документ (а он порядка из 200 страниц у меня в word) , то выделяется всё. Хотелось бы как в моем примере выделялись только определенные слова.
12 Ответ от Ципихович Эндрю 30.04.2012 08:22:40- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
там расписано всё
13 Ответ от Ципихович Эндрю 30.04.2012 08:28:23- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
сноровку нужно иметь.
Find Find Find.doc 44.5 Кб, 1 скачиваний с 2012-04-30
You don't have the permssions to download the attachments of this post.
14 Ответ от cobra77777 30.04.2012 13:33:44- cobra77777
- сержант
- Неактивен
- Зарегистрирован: 29.04.2012
- Сообщений: 10
Спасибо за присланные алгоритмы Эндрю, но мой вопрос так и остался не решенным .И потом никак я не пойму: >То есть ничего не ищем и ни на что не меняем, просто выделяем, а потом выделенное подчёркиваем.Я считаю, нам надо все таки найти текст (выделенный заливкой), а потом как найдем текст сделать нижнее подчеркивание. Я спрашивал как найти выделенный заливкой текст, мы все таки все равно должны где то это указать ?
15 Ответ от viter.alex 30.04.2012 21:58:56- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Чтобы найти выделенный цветом текст, это нужно указать. Вот что дала запись макроса:
Нужно обратить внимание на вторую строчку кода: именно она и указывает, что текст должен быть выделен цветом. Правда, как указать цвет выделения, я не нашёл. Но это не беда, небольшое допиливание напильником и всё заработает. Вместо последней строчки Selection.Find.Execute, нужно записать:
16 Ответ от aap77 30.04.2012 22:40:06- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
aap77, вот эта задача как раз из тех, где применение объекта Range не оправдано, т.к. становится больше кода и лишних операций. А именно, когда нужно при поиске вводить свои действия с найденным текстом, то лучше пользоваться Selection, т.к. после выполнения пользовательских действий над текстом поиск продолжается, а в случае с Range он прерывается и необходимо переопределять диапазон для запуска нового поиска.
18 Ответ от Ципихович Эндрю 01.05.2012 05:03:54- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
что-то я советовал, а теперь сам в ступоре, с выделением работает, а если просто шрифт зелёный - не работает
Sub Ищём_выделенное_цветом_wdGreen_и_подчёркиваем()
Selection.Find.ClearFormatting Selection.Find.Highlight = True Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Font.Underline = wdUnderlineSingle With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With While Selection.Find.Execute 'цвет зелёный If Selection.Font.Color = wdColorGreen Then 'выделение зелёным цветом 'If Selection.Range.HighlightColorIndex = wdGreen Then 'сделать шрифт подчёркнутым Selection.Font.Underline = wdUnderlineSingle End If Wend
End Sub
19 Ответ от cobra77777 01.05.2012 07:43:57- cobra77777
- сержант
- Неактивен
- Зарегистрирован: 29.04.2012
- Сообщений: 10
что-то я советовал, а теперь сам в ступоре, с выделением работает, а если просто шрифт зелёный - не работает
Sub Ищём_выделенное_цветом_wdGreen_и_подчёркиваем()
Selection.Find.ClearFormatting Selection.Find.Highlight = True Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Font.Underline = wdUnderlineSingle With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With While Selection.Find.Execute 'цвет зелёный If Selection.Font.Color = wdColorGreen Then 'выделение зелёным цветом 'If Selection.Range.HighlightColorIndex = wdGreen Then 'сделать шрифт подчёркнутым Selection.Font.Underline = wdUnderlineSingle End If Wend
End Sub
Пробежался быстренько, но опять но не подчеркнул.
20 Ответ от aap77 01.05.2012 08:32:16- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
Товарищи, в том-то и дело, что у объекта Find, есть такое замечательное свойство как Found, после выполнения оператора Execute, если Found = True, то с найденным фрагментом можно делать все, что позволяет код VBA, в том числе, и задавать дополнительные условия, а потом уже выполнять операции по замене. У Вас же в примерах цикл While Selection.Find.Execute…Wend выполняется только к первому найденному фрагменту. Так же в моем примере использован объект Range основе обекта Selection и свойство rngEnd = rng.End для определения точки выхода из цикла во избежание зацикливания программы
21 Ответ от viter.alex 01.05.2012 12:11:13- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
…У Вас же в примерах цикл While Selection.Find.Execute…Wend выполняется только к первому найденному фрагменту…
Он выполняется к каждому найдённому фрагменту по очереди. Т.е. сначала у меня задаются условия поиска, а затем поиск вызывается в цикле While.aap77, я не говорю, что твой код не правильный. Он не оптимальныйcobra77777, попробуй макросы из сообщений 15 и 16 этого должно хватить
22 Ответ от cobra77777 01.05.2012 16:21:37- cobra77777
- сержант
- Неактивен
- Зарегистрирован: 29.04.2012
- Сообщений: 10
ВСЕМ БОЛЬШОЕ СПАСИБО ЗА ПОМОЩЬ. ВСЕ ПОЛУЧИЛОСЬ УРАААААААА.РАБ.КОД:
Sub Макрос1()'' Макрос1 Макрос Selection.Find.ClearFormatting Selection.Find.Highlight = True Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Font.Underline = wdUnderlineSingle With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With While Selection.Find.Execute If Selection.Range.HighlightColorIndex = wdGreen Then Selection.Font.Underline = wdUnderlineSingle End IfWendEnd Sub
Сообщений [ 22 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Похожие темыНеобх-мо найти выделенный текст и подчеркнуть
При работе с многофункциональными современными редакторами текста, такими как, например, Microsoft Word, очень часто возникает потребность обсудить проблемы и нюансы работы. Наш сайт о Microsoft Office Word даст ответ про: рамка мишки ворд. В зависимости от типа текста, цели, с которой он создается или редактируется, пользователю приходится осваивать те или иные функции, искать пути автоматизации своей работы, особенно это актуально для значительных объемов текста. На портале о Microsoft Office Word вы узнаете про: microsoft word как отключить клавишу alt office. Также бывают трудности при переходе от одной версии Ворда к другой.
Помочь пользователям текстового редактора решили на сайте Ворд Эксперт и форуме сайта. Наш сайт о Microsoft Office Word даст ответ про: завис ворд, как сохранить документ. Тут собрана вся необходимая информация, касающаяся программы, доступны полезные ссылки и списки литературы, выложены готовые ответы на самые стандартные вопросы, кроме того, оригинальные решения различных проблем при работе с программой. Наш сайт о Microsoft Office Word даст ответ про: в каких случаях новая строка предложения не является красной. Например, на форуме вы найдете макросы для нумерации разделов, шаблоны оглавлений, принципы работы с горячими клавишами и многое другое. На портале о Microsoft Office Word вы узнаете про: как удалить недавно открытые вкладки?.
Прежде всего, Ворд Эксперт, ориентирован на автоматизацию работы Ворда, тут обсуждаются разнообразные макросы и шаблоны, но также вы найдете сравнительные характеристики различных версий, обсуждение настроек программы и способов редактирования и форматирования тексов. На портале о Microsoft Office Word вы узнаете про: скачать активатор офис 2007.
Кроме того, вы можете описать свою проблему в специальном подразделе и получить готовое решение.