Добрый день. Если не сложно, прошу подсказать или направить в нужную сторону. Есть код который ищет слова выделенные определённым цветом, копирует и вставляет их в начало документа. Проблема в том, что если в документе есть таблица вставленная в другую, то выполнение макроса зацикливается. Точную причину пока не выявил, потому что, если какие нибудь манипуляции с таблицами проделать макрос может сработать нормально, а иногда есть вложенные таблицы и макрос выполняется нормально. В прикреплённом файле "Таблица для теста" - она пустая, макрос на ней зацикливается. Вот тело макроса: [vba]
Код
sub макрос5() ' Выводит маркеры в начало документа Selection.HomeKey Unit:=wdStory Selection.TypeParagraph Selection.TypeParagraph Selection.HomeKey Unit:=wdStory Selection.ClearFormatting WordBasic.ClearAllFormatting
With ActiveDocument.Content.Find .Highlight = True .Format = True
Do While .Execute = True If .Parent.HighlightColorIndex = wdTurquoise Then .Parent.Copy Selection.Paste Selection.TypeText Text:=vbTab
With ActiveDocument.Content.Find .Highlight = True .Format = True Do While .Execute = True If .Parent.HighlightColorIndex = wdPink Then .Parent.Copy Selection.Paste Selection.TypeText Text:=vbTab
End If Loop End With
Selection.HomeKey Unit:=wdStory End Sub
[/vba]
Буду признателен, если подскажете, а то уже всю голову сломал. Office 2007, если это имеет значение.
Тему разместил на ФРИЛАНСе
Добрый день. Если не сложно, прошу подсказать или направить в нужную сторону. Есть код который ищет слова выделенные определённым цветом, копирует и вставляет их в начало документа. Проблема в том, что если в документе есть таблица вставленная в другую, то выполнение макроса зацикливается. Точную причину пока не выявил, потому что, если какие нибудь манипуляции с таблицами проделать макрос может сработать нормально, а иногда есть вложенные таблицы и макрос выполняется нормально. В прикреплённом файле "Таблица для теста" - она пустая, макрос на ней зацикливается. Вот тело макроса: [vba]
Код
sub макрос5() ' Выводит маркеры в начало документа Selection.HomeKey Unit:=wdStory Selection.TypeParagraph Selection.TypeParagraph Selection.HomeKey Unit:=wdStory Selection.ClearFormatting WordBasic.ClearAllFormatting
With ActiveDocument.Content.Find .Highlight = True .Format = True
Do While .Execute = True If .Parent.HighlightColorIndex = wdTurquoise Then .Parent.Copy Selection.Paste Selection.TypeText Text:=vbTab
With ActiveDocument.Content.Find .Highlight = True .Format = True Do While .Execute = True If .Parent.HighlightColorIndex = wdPink Then .Parent.Copy Selection.Paste Selection.TypeText Text:=vbTab
End If Loop End With
Selection.HomeKey Unit:=wdStory End Sub
[/vba]
Буду признателен, если подскажете, а то уже всю голову сломал. Office 2007, если это имеет значение.