Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2010, 14:26   #1
Simbad
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 62
Сообщение Как осуществить поиск в диапазон?

Приветствую всех участников форума!
Надо в определенный диапазон документа подсчитать количество те фразы, которые закрашены красным светом. Попробовал вот так:
Dim rng As Range
Set rng = ActiveDocument.Paragraphs(1).Range
With rng.Find
.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.Font.Color = wdColorRed
.Execute
If .Found = False Then
n=0
Exit Sub
Else
n = 1
While .Execute
n = n + 1
Wend
End If
End With
MsgBox n
Но оно подсчитает количество всех этих фраз в целом документе. Помогите разобраться, пожалуйста…
Simbad вне форума Ответить с цитированием
Старый 22.03.2010, 17:11   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

А зачем два раза запускать поиск? Вот так будет работать
Код:
  Dim rng As Range
  Dim n As Integer
  Set rng = ActiveDocument.Paragraphs(1).Range
  n = 0
  With rng.Find
    .Text = ""
    .Forward = True
    .Format = True
    .Font.Color = wdColorRed
    While .Execute
      n = n + 1
    Wend
  End With
  MsgBox n
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 23.03.2010 в 00:56.
viter.alex вне форума Ответить с цитированием
Старый 22.03.2010, 18:37   #3
Simbad
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 62
Сообщение

Спасибо за помощь, но ваш пример тоже мне не устраивает . Потому что оно тоже подсчитает остальные абзацев. Мне надо чтобы оно подсчитал количество красных фраз только в первом абзаце.
Simbad вне форума Ответить с цитированием
Старый 23.03.2010, 07:05   #4
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Цитата:
Сообщение от Simbad Посмотреть сообщение
Мне надо чтобы оно подсчитал количество красных фраз только в первом абзаце.
Перед поиском запомните область поиска или ее координаты, например:
set saveR = ActiveDocument.Paragraphs(1).Range
И, после Execute, добавьте проверку попадания в область поиска:
If not mg.InRange(saveR) then ' остановка поиска
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 25.03.2010, 12:09   #5
Simbad
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 62
По умолчанию

Огромное вам спасибо! Хорошо сработаль
Simbad вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
access 07 + delphi как подключать базы и осуществить поиск в них? frizz Microsoft Office Access 5 30.11.2009 07:10
[Делфи] Как осуществить поиск в StringGrid... zotox Помощь студентам 3 13.07.2009 10:42
Как осуществить поиск файла *.rtf Karinka Общие вопросы Delphi 4 18.03.2009 15:35
Как написать в коде чтобы диапазон А копировался как значение в диапазон В. Dorvir Microsoft Office Excel 12 23.05.2008 22:11
как осуществить поиск в компоненте WebBrowser1 в delphi 7 SonClan Работа с сетью в Delphi 5 20.11.2007 12:43