powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA Word. Как выделить (раздел) списка с найденным словом
9 сообщений из 9, страница 1 из 1
VBA Word. Как выделить (раздел) списка с найденным словом
    #38951348
mtvll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!

По команде Find ищу искомое слово в документе. Документ состоит из списка с разными уровнями.
Как на VBA проще всего выделить раздел первого уровня, где найдена строка. Даже если строка найдена на втором, третьем и так далее уровнях.

То есть в документе

Содержимое1 уровня1
--------Содержимое1 уровня2
--------------Содержимое1 уровня3
Содержимое2 уровня1
--------Содержимое2 уровня2



если строка найдена в Содержимом1 независимо от уровня, то выделяем (в selection)

Содержимое1 уровня1
--------Содержимое1 уровня2
--------------Содержимое1 уровня3

Спасибо за любые комментарии
...
Рейтинг: 0 / 0
VBA Word. Как выделить (раздел) списка с найденным словом
    #38951501
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выделить нужный диапазон так:
Код: vbnet
1.
thisdocument.Range(5,100).Select



требуемые позиции брать из свойств End/Start найденного диапазона
...
Рейтинг: 0 / 0
VBA Word. Как выделить (раздел) списка с найденным словом
    #38951584
Борис_Р
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mtvllВсем доброго времени суток!

Если строка найдена в Содержимом1 независимо от уровня, то выделяем (в selection)

Содержимое1 уровня1
--------Содержимое1 уровня2
--------------Содержимое1 уровня3

Спасибо за любые комментарии
Поэкспериментируйте с предопределенной закладкой \HeadingLevel
Если найденная строка находится внутри Содержимое1 уровня1, то следующий код выделит содержимое всех последующих уровней

Код: vbnet
1.
ActiveDocument.Bookmarks("\HeadingLevel").Range.Select
...
Рейтинг: 0 / 0
VBA Word. Как выделить (раздел) списка с найденным словом
    #38951751
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
\HeadingLevel работает только с текущим уровнем, на предыдущий выходить отказывается.

Однако, с помощью этой закладки можно выделить весь уровень, после того, как найден "Заголовок1" (гораздо проще, чем предложенный мной выше вариант)
...
Рейтинг: 0 / 0
VBA Word. Как выделить (раздел) списка с найденным словом
    #38951797
Борис_Р
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такой код позволяет выделить абзац с текстом заголовка соответствующего уровня, в котором стоит курсор
(кроме \HeadingLevel используется предопределенная закладка \Para)
Код: vbnet
1.
2.
ActiveDocument.Bookmarks("\HeadingLevel").Range.Select
ActiveDocument.Bookmarks("\Para").Range.Select


После этого можно определить уровень заголовка, и если это не Заголовок 1, то поднять курсор на одну строку вверх и далее в цикле добраться до Заголовка 1.
...
Рейтинг: 0 / 0
VBA Word. Как выделить (раздел) списка с найденным словом
    #38951810
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Борис_Р,

ну, на мой взгляд, поиском вверх найти абзац нужного стиля будет быстрее
...
Рейтинг: 0 / 0
VBA Word. Как выделить (раздел) списка с найденным словом
    #38951843
Борис_Р
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProБорис_Р,

ну, на мой взгляд, поиском вверх найти абзац нужного стиля будет быстрее
Shocker.Pro , вы правы, когда отправил сообщение, сразу подумал о поиске нужного стиля, но не успел опередить.
Вот что записал макрорекодер:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub Макрос118()
'
' 
    Selection.Find.ClearFormatting
    Selection.Find.Style = ActiveDocument.Styles("Заголовок 1")
    With Selection.Find
        .Text = "^?"
        .Replacement.Text = ""
        .Forward = False
        .Wrap = wdFindAsk
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchKashida = False
        .MatchDiacritics = False
        .MatchAlefHamza = False
        .MatchControl = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.GoTo What:=wdGoToBookmark, Name:="\HeadingLevel"
End Sub
...
Рейтинг: 0 / 0
VBA Word. Как выделить (раздел) списка с найденным словом
    #38951851
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Борис_Р
Код: vbnet
1.
Макрос118

немало попыток было сделано
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
VBA Word. Как выделить (раздел) списка с найденным словом
    #39340184
marmihalovna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть слова

dead dɛd
deaf dɛf
head hɛd

мне нужно во всех словах выделить, ну допустим, "ea" именно ТОЛЬКО ВЫДЕЛИТЬ и не изменять
так как если бы я это делала, выделив "ea" непосредственно в первом слове, и далее с помощью ПРАВКА-НАЙТИ-(вкладка)НАЙТИ-(установив галочку)ВЫДЕЛИТЬ ВСЕ ЭЛЕМЕНТЫ,НАЙДЕННЫЕ В : выпадающий список) ОСНОВНОЙ ДОКУМЕНТ и нажав кнопочку НАЙТИ ВСЕ

КОГДА Я ДЕЛАЮ ЗАПИСЬ МАКРОСА ТО У МЕНЯ ПОЛУЧАЕТСЯ
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Выделить()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "ea"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindAsk
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
End Sub


НО запуская этот макрос снова, у меня не получается такого результата, как через НАЙТИ в меню ПРАВКА
чего же не хватает
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA Word. Как выделить (раздел) списка с найденным словом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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