Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 04.05.2015
Сообщений: 1
1

Word - Как выделить раздел многоуровневого списка с найденным словом

04.05.2015, 23:42. Показов 1182. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток!

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

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

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



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

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

Спасибо за любые комментарии
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2015, 23:42
Ответы с готовыми решениями:

Продолжить нумерацию многоуровневого списка (Word)
Ребя, мож кто подскажет как добраться через вба до кнопки "продолжить нумерацию"? Объединяю в...

Несквозная нумерация многоуровневого списка word 2010
Здравствуйте. В моем документе в Word используются многоуровневые списки с нумерацией. Вид...

Как сделать вывод многоуровневого списка из бд?
Здравствуйте, в бд есть некие категории, их нужно вывести в определенной воженности друг в друга на...

DataGridView - выделить строку с найденным значением
Здравствуйте, написал такой код для выбора нужной строки в DataGridView public void...

1
5612 / 1596 / 414
Регистрация: 23.12.2010
Сообщений: 2,392
Записей в блоге: 1
06.05.2015, 09:16 2
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Sub Выделить_часть_списка()
    Dim i&, rStart&, rEnd&, LevelStart%, Li, Iskomoe$, Naydeno As Boolean
    Iskomoe = "ёёёё"
    For Each Li In ActiveDocument.Lists
        For i = 1 To Li.ListParagraphs.Count
            With Li.ListParagraphs(i).Range
                Select Case .ListFormat.ListType
                    Case wdListOutlineNumbering, wdListMixedNumbering
                        With ActiveDocument.Range(Start:=.Start, End:=.End).Find
                            .ClearFormatting
                            .Text = Iskomoe
                            .Forward = True
                            .Wrap = wdFindStop
                            .Format = False
                            .MatchWholeWord = False
                            .MatchCase = False
                            .MatchWildcards = False
                            .Execute
                            If .Found Then
                                Naydeno = True
                                Exit For
                            End If
                        End With
                End Select
            End With
        Next
        If Naydeno Then
            rStart = Li.ListParagraphs(i).Range.Start
            rEnd = Li.ListParagraphs(i).Range.End
            LevelStart = Li.ListParagraphs(i).Range.ListFormat.ListLevelNumber
            For i = i + 1 To Li.ListParagraphs.Count
                With Li.ListParagraphs(i).Range
                    If .ListFormat.ListLevelNumber > LevelStart Then
                        rEnd = .End
                    Else
                        Exit For
                    End If
                End With
            Next
            ActiveDocument.Range(rStart, rEnd).Select
            Exit For
        End If
    Next Li
End Sub
Добавлено через 16 часов 0 минут
Поправка:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Sub Выделить_часть_списка()
    Dim i&, rStart&, rEnd&,  Li, Iskomoe$, Naydeno As Boolean
    Iskomoe = "ёёёё"
    For Each Li In ActiveDocument.Lists
        For i = 1 To Li.ListParagraphs.Count
            With Li.ListParagraphs(i).Range
                Select Case .ListFormat.ListType
                    Case wdListOutlineNumbering, wdListMixedNumbering
                        If .ListFormat.ListLevelNumber = 1 Then rStart = .Start
                        With ActiveDocument.Range(Start:=.Start, End:=.End).Find
                            .ClearFormatting
                            .Text = Iskomoe
                            .Forward = True
                            .Wrap = wdFindStop
                            .Format = False
                            .MatchWholeWord = False
                            .MatchCase = False
                            .MatchWildcards = False
                            .Execute
                            If .Found Then
                                Naydeno = True
                                Exit For
                            End If
                        End With
                End Select
            End With
        Next
        If Naydeno Then
            rEnd = Li.ListParagraphs(i).Range.End
            For i = i + 1 To Li.ListParagraphs.Count
                With Li.ListParagraphs(i).Range
                    If .ListFormat.ListLevelNumber > 1 Then
                        rEnd = .End
                    Else
                        Exit For
                    End If
                End With
            Next
            ActiveDocument.Range(rStart, rEnd).Select
            Exit For
        End If
    Next Li
End Sub
0
06.05.2015, 09:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2015, 09:16
Помогаю со студенческими работами здесь

Как найти и выделить желтым цветом все ячейки со словом?
void __fastcall TForm1::FormCreate(TObject *Sender) { S1->Cells= "ИстГосПрава п-592 ...

Реверс многоуровневого списка
Помогите пожалуйста написать полный код, в котором будет реализовываться функция MyReverseTree: то...

Реверс многоуровневого списка
Помогите c защитой) можно ли эту программу написать более простым способом. не используя...

Перебор многоуровневого списка
Здравствуйте! Столкнулся с вопросом перебора многоуровневого списка. <ul> <li>Страна_1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru