Здравствуйте, 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 никогда не приходилось работать. Поэтому понятия не имею с чем это может быть связано. Есть ли какие либо идеи ?