Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 12 ]
- Зарегистрирован: 10.01.2010
- Сообщений: 63
Тема: Подсчет количества произведенных замен
Как можно подсчитать количество произведенных замен, если используется следующий вариант поиска и замены:
with document(name).range.finв
.text = text
.replacement.text = text 2
.execute replace:=wdreplaceall
end with
Заранее благодарен.
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Подсчет количества произведенных замен
Никак. В отдельных случаях, если производится замена одного текста на другой, без использования подстановочных знаков, то можно вычислить количество замен по разности длин текста. Но это суррогатный метод. Не знаю, как Word показывает поличество произведённых замен.
Если найдёшь ответ — обязательно сообщи!
Лучше день потерять — потом за пять минут долететь!
- andrkar
- Модератор
- Неактивен
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 431
- Поблагодарили: 26
Re: Подсчет количества произведенных замен
viter.alex Без макроса ведь он показывает цифру, когда говоришь - найти все, или заменить все. Значит в какую-то переменную это значение он перед выводом запоминает!
Денис Будем думать, задачка интересная!
- Зарегистрирован: 10.01.2010
- Сообщений: 63
Re: Подсчет количества произведенных замен
andrkar пишет:Будем думать
viter.alex пишет:Никак. В отдельных случаях
У меня тут возникла идейка: а нельзя с этой целью отследить количество произведенных изменений в документе, как бы подключив режим рецензирования?
Отредактировано Денис (22.03.2010 09:35:09)
- andrkar
- Модератор
- Неактивен
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 431
- Поблагодарили: 26
Re: Подсчет количества произведенных замен
что-то мне подсказывает, что нужно искать решение, используя Frame. Где-то рядом с ним решение.
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Подсчет количества произведенных замен
А что именно подсказывает? При чём здесь Frame?
Лучше день потерять — потом за пять минут долететь!
- andrkar
- Модератор
- Неактивен
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 431
- Поблагодарили: 26
Re: Подсчет количества произведенных замен
Думаю, нужно на две части задачу разделить - сначала просто поиск.. Ведь сколько найдет, столько и заменит.
Ну а Frames.copy, если у Selection, найденное копирует в буфер, значит как то можно эти данные и не в буфер закинуть? а там посчитать количество повторяющих элементов????
- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
Re: Подсчет количества произведенных замен
Если уж используете макрос, то почему не изменить код? Пример для поиска вперед:
N = 0
Do While Range.Find.Execute
Range.Collapse wdCollapseStart
Range.Find.Execute Replace:=wdReplaceOne
R.Collapse wdCollapseEnd
N = N + 1
Loop
MsgBox "Произведено замен: " & CStr(N)
Можно использовать счетчик исправлений:
Range.Document.AcceptAllRevisions
Range.Find.Execute Replace:=wdReplaceAll
MsgBox "Произведено замен: " & CStr(Range.Document.Revisions.Count)
Отредактировано Вождь (23.03.2010 19:49:51)
Макросы под заказ и готовый пакет - mtdmacro.ru
- Зарегистрирован: 10.01.2010
- Сообщений: 63
Re: Подсчет количества произведенных замен
Вождь пишет:Если уж используете макрос, то почему не изменить код?
Мне нужно исключать при поиске текст, скажем, красного цвета. Можно ли такое задать в вашем варианте?
- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
Re: Подсчет количества произведенных замен
Денис пишет:Мне нужно исключать при поиске текст, скажем, красного цвета
Можно:
Dim R As Range, N As Long
Set R = ActiveDocument.Range(0, 0)
With R.Find
.Forward = True
.Text = "1"
.Replacement.Text = "2"
End With
N = 0
Do While R.Find.Execute
If R.Font.Color <> wdColorRed Then
R.Collapse wdCollapseStart
R.Find.Execute Replace:=wdReplaceOne
N = N + 1
End If
R.Collapse wdCollapseEnd
Loop
Макросы под заказ и готовый пакет - mtdmacro.ru
- andrkar
- Модератор
- Неактивен
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 431
- Поблагодарили: 26
Re: Подсчет количества произведенных замен
Денис - пора уже привыкнуть, что Вождь не приводит решение целиком. И правильно. Нужно, чтобы человек подумал и сам немного, как данный ему механизм применить к своей задаче. Вам нужно просто ваш исходный код задания текста для поиска и замены приспособить к предложенному решению.
По вашему вопросу - для кнасного цвета color = wdColorRed.
Так как и вами тоже задача полностью не поставлена, непонятно, что и как вы хотите сделать, в чем ограничения, что можно использовать, что нет... Чем полнее будет вопрос, тем быстрее на него можно будет найти ответ..
- Зарегистрирован: 10.01.2010
- Сообщений: 63
Re: Подсчет количества произведенных замен
andrkar пишет:Денис - пора уже привыкнуть, что Вождь не приводит решение целиком.
Это я прекрасно понимаю. И прежде чем снова написать, испробовал все доступные моему понимаю способы приложения идеи. Не вышло. Попросил совета, потому что мне было важно посмотреть, как мыслит в такой ситуации опытный человек. Скажу по секрету, VBA подробно изучаю лишь последние 4 месяца, когда начал посещать этот сайт, еще без форума, и учиться "мышлению программиста" и методам/приемам работы, разбирая листинги авторов сайта. Уверяю вас, я пришел сюда не за "халявой" в виде разжеванного ответа, а с перспективой научиться так, чтобы для решения своих задач перестать задавать вопросы .
Сообщений [ 12 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подсчет количества произведенных замен
Для всех, кто желает совершенствоваться, расти и не любит терять времени понапрасну, предлагаем замечательную шпаргалку по Ворду – форум Ворд Эксперт. На портале о Microsoft Office Word вы узнаете про: как задать нумерацию страниц в ворде 2003.
Что приятно, это русский форум, очень теплый, там вы не найдете заумных слов и жутких сленговых терминов, в которых без Билла Гейтса не разберешься. Наш сайт о Microsoft Office Word даст ответ про: связь между листами в экселе.
Все просто и понятно.
Заходя в дом - на форум, вы тут же оказываетесь в «прихожей» - разделе, где даются ответы на основные вопросы, как по самому Ворду, так и по устройству форума и сайта. Наш сайт о Microsoft Office Word даст ответ про: как вырезать картинку из документа микрософт и сделать просто картинкой.
Там же вам предложат почитать что-нибудь интересное (про Ворд, конечно, за этим вы и пришли).
А в «гостиной» вы сможете обсудить программу, вашу версию, ее настройки, особенности работы, форматирование и многое другое. Наш сайт о Microsoft Office Word даст ответ про: печать номера копии на документе.
Вас научат оптимизировать эксплуатацию Microsoft Word с помощью макросов. Это совсем не сложно.
В «столовой» форума подаются готовые блюда – оригинальные решения той либо иной проблемы, макросы и многое другое. На портале о Microsoft Office Word вы узнаете про: ворд 2007 как не нумеровать первую страницу в реферате.
Если хотите заказать «экзотическое блюдо», добро пожаловать «на кухню» - раздел «заявки на разработку». На портале о Microsoft Office Word вы узнаете про: почему wopd печатает на пол странице и маленьким шрифтом когда тебе надо а 4.
Оставьте в нем описание своей проблемы, и вам помогут.
Что такое «курилка» объяснять, наверно, никому не надо. Наш сайт о Microsoft Office Word даст ответ про: таблицы pdf в word.
Заходите и сами все увидите. А пожелания можно оставлять в соответствующем разделе.