Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пропустить track changes в word-e, Нужно пропустить в поиске traking change 
:(
    Опции темы
SAVe
Дата 23.9.2014, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 15.10.2007

Репутация: нет
Всего: нет



Здравствуйте.
Есть в  документе word метки которые макросом заменяются на названия. Например метка <NUMBER находится скриптом и заменяется на TEST-001. Но когда включена опция track changes , то значение подставляется и метка отображается рядом как зачёркнутая. Т.е. получается вот так: TEST-001<NUMBER. Проблема в том что при повторном запуске макроса метка находится снова и макрос дублирует названия.
Вот код который ищет метки:
Код

Private Function FindSearchMark(ByVal rngStory As Range) As Boolean
    With rngStory.Find         
        .ClearFormatting
        .Wrap = wdFindStop
        .Forward = True
        .MatchCase = False
        .MatchWildcards = False
        .MatchWholeWord = False
        .Execute FindText:="<"
        FindSearchMark = .found        
        ....
    End With
   
End Function


Вопрос в том как пропустить при поиске изменения отслеживаемые вордом ? 
PM MAIL   Вверх
SAVe
Дата 26.9.2014, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 15.10.2007

Репутация: нет
Всего: нет



Возможно нашел решение , но не могу довести до ума. Переделал немного вызывающую функцию:
Код

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 никогда не приходилось работать. Поэтому понятия не имею с чем это может быть связано. Есть ли какие либо идеи ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.1041 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.