Re[4]: Пропустить track changes в word документе
От: SAVe  
Дата: 26.09.14 06:45
Оценка:
Здравствуйте, Vi2, Вы писали:


Vi2>Range незачёркнутого и зачёркнутого должен отличаться. Вот в данном случае есть поле Revisions, которое в одном случае не имеет элементов, а во втором — имеет.


Спасибо за подсказку. Я сделал так (поменял в вызывающей функции):
Private Sub SearchAndReplaceInStory(ByVal regArray As Variant, ByVal rngStory As Word.Range, ByVal storyType As Integer)
    Do While FindSearchMark(rngStory)
        rngStory.Select
        rngStory.Collapse Direction:=wdCollapseEnd
        If rngStory.Revisions.count = 0 Then
            HandleSelectedSearchMark regArray, storyType
        End If
    Loop
End Sub


Но макрос ведёт себя как то странно...
Если я не ставлю точку прерывания на строке:
    Do While FindSearchMark(rngStory)
        ....


всё работает. После первого выполнения макроса
rngStory.Revisions.count = 1
для метки. Но если я убираю breakpoint с этой строки и ставлю например на
HandleSelectedSearchMark regArray, storyType
макрос перестаёт работать. Т.е. Он работает как до изменения и
rngStory.Revisions.count
всегда 0. То же самое если вообще не ставлю точки прерывания. Пробовал сохранять , переоткрывать документ. Не помогает. Получается что макрос работает как ожидается только в режиме отладки и то только если breakpoint в нужном месте.
Раньше с макросами для ворда и VBA никогда не приходилось работать. Поэтому понятия не имею с чем это может быть связано. Есть ли какие либо идеи ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.