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

Поиск нужной таблицы и выделение текста по заданным условиям

18.01.2012, 04:32. Показов 1904. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
подскажите пожалуйста

Необходимо написать макрос в котором:
1)найти нужную таблицу (у каждой таблицы есть заголовок, у нужной-термины. после заголовка и идет необходимая таблица),
2)пробежаться по строкам и в тех строках, где второй столбец не заполнен выделить текст в первом столбце цветом (смотреть нужно по длине строки, т.к. там, возможно, присутствуют какие-то служебные символы, т.е. ячейка окажется не пустой, но строка будет короткой: 1 или 2 символа).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2012, 04:32
Ответы с готовыми решениями:

Поиск нужной строки по двум условиям (макрос)
Добрый день! Заранее прошу не кидаться тапками, второй день занимаюсь макросами, ранее с ними не...

Поиск и выделение нужной записи в Listbox
Цикл наверное будет тормозить .. можно ли как нибудь по другому ?? или не выделять а сделать как...

Поиск и копирование файлов по заданным условиям
Приветствую! Очень нужна Ваша помощь. Суть следующая, есть некая папка с множеством разных файлов....

В ячейки таблицы вставить формулы, которые смогут распределить товар по ячейкам, по заданным условиям
Друзья, решать за себя не прошу, всего лишь подсказать как это можно реализовать. В столбцах...

8
1300 / 402 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
18.01.2012, 07:09 2
Vikulenochek,
образец файла выкладывайте. Оставьте в файле только те данные, которые необходимы, чтобы можно было написать код.
0
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 5
18.01.2012, 08:13  [ТС] 3
файл во вложении
Вложения
Тип файла: doc Глоссарий.doc (43.5 Кб, 26 просмотров)
0
1300 / 402 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
18.01.2012, 08:55 4
Заголовки должны быть оформлены стилем Заголовок 3 (как у вас во вложенном файле).
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
Sub Процедура1()
    Dim strHeader As String
    Dim lngTableNumber As Long
    Dim objCell As Word.Cell
    Dim bFlag As Boolean
    strHeader = InputBox("Какой заголовок искать?")
    If strHeader = "" Then
        Exit Sub
    End If
    With ActiveDocument.Content.Find
        .Text = strHeader
        .Style = "Заголовок 3"
        .Format = True
        If .Execute = False Then
            MsgBox "Такого заголовка нет в документе!", vbInformation
            Exit Sub
        Else
            lngTableNumber = ActiveDocument.Range(Start:=0, End:=.Parent.End).Tables.Count + 1
        End If
    End With
    For Each objCell In ActiveDocument.Tables(lngTableNumber).Columns(2).Cells
        If Len(Trim(objCell.Range.Text)) < 3 Then
            objCell.Previous.Shading.BackgroundPatternColor = wdColorRed
            bFlag = True
        End If
    Next objCell
    If bFlag = True Then
        MsgBox "Были найдены пустые ячейки!", vbCritical
    Else
        MsgBox "Не было найдено пустых ячеек!", vbInformation
    End If
End Sub
2
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 5
18.01.2012, 10:45  [ТС] 5
Busine2012,
а возможно ли чтобы он не спрашивал какой заголовок искать. заголовок необходимой таблицы всегда один и тот же (его имя термины)?
0
1300 / 402 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
18.01.2012, 10:51 6
В 6 строке:
Visual Basic
1
strHeader = "Термины"
Строки 7 - 9 удалите.
0
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 5
30.01.2012, 04:44  [ТС] 7
Вот что получилось, в итоге выделяет всю левую колонкутаблицы. Подскажите пожалуйста, что нужно сделать чтобы корректно работало?
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
Sub Ïðîöåäóðà1()
    Dim strHeader As String
    Dim lngTableNumber As Long
    Dim objCell As Word.Cell
    Dim bFlag As Boolean
    strHeader = "Òåðìèíû"
    
        With ActiveDocument.Content.Find
        .Text = strHeader
        .Style = "Çàãîëîâîê 3"
        .Format = True
        If .Execute = False Then
            MsgBox "Òàêîãî çàãîëîâêà íåò â äîêóìåíòå!", vbInformation
            Exit Sub
        Else
            lngTableNumber = ActiveDocument.Range(Start:=0, End:=.Parent.End).Tables.Count + 2
        End If
    End With
    For Each objCell In ActiveDocument.Tables(lngTableNumber).Columns(2).Cells
        If Len(Trim(objCell.Range.Text)) < 3 Then
            objCell.Previous.Shading.BackgroundPatternColor = wdColorRed
            bFlag = True
        End If
    Next objCell
    If bFlag = True Then
        MsgBox "Áûëè íàéäåíû ïóñòûå ÿ÷åéêè!", vbCritical
    Else
        MsgBox "Íå áûëî íàéäåíî ïóñòûõ ÿ÷ååê!", vbInformation
    End If
End Sub
0
1300 / 402 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
31.01.2012, 15:37 8
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
Sub Процедура1()
    'Если в ходе выполнения кода текст в переменной не меняется,
    'то надо эту переменную превратить в константу (так логичнее просто).
    Const strHeader As String = "Термины"
    Dim lngTableNumber As Long
    Dim objCell As Word.Cell
    Dim boolFlag As Boolean
    With ActiveDocument.Content.Find
        .Text = strHeader
        .Style = "Заголовок 3"
        .Format = True
        If .Execute = False Then
            MsgBox "Такого заголовка нет в документе!", vbInformation
            Exit Sub
        Else
            'Здесь определяем: сколько таблиц находится от начала документа
            'до места, где находится заголовок Термины.
            'Следующая таблица будет наша, поэтому +1
            lngTableNumber = ActiveDocument.Range(Start:=0, End:=.Parent.End).Tables.Count + 1
        End If
    End With
    For Each objCell In ActiveDocument.Tables(lngTableNumber).Columns(2).Cells
        If Len(Trim(objCell.Range.Text)) < 3 Then
            objCell.Previous.Shading.BackgroundPatternColor = wdColorRed
            boolFlag = True
        End If
    Next objCell
    If boolFlag = True Then
        MsgBox "Были найдены пустые ячейки!", vbCritical
    Else
        MsgBox "Не было найдено пустых ячеек!", vbInformation
    End If
End Sub
1
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 5
13.02.2012, 02:59  [ТС] 9
Busine2012, спасибо
0
13.02.2012, 02:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2012, 02:59
Помогаю со студенческими работами здесь

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

Поиск нужной информации в ячейках таблицы Excel
Нужно найти в файле excel все возможные слова с названием &quot;Тут что то написано&quot;, а напротив слов...

Поиск и выделение текста
Всем привет, подскажите пожалуйста с функцией, хочу сделать что бы текст который вбивает...

Поиск и выделение текста в RichTextBox
Приветствую. На форме есть RichTextBox1 и кнопка Button1. Так же имеется файл words.txt,...


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

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