|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.03.2013, 15:27 | #1 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,127
|
Поиск-Find
Здравствуйте, когда в документе имеется два слова
"проверка," тогда код считает TextError = "слово повторяется" TextError1 = 0 если удалить одно слово "проверка," и оставить одно слово "проверка," тогда код считает также само, вот код: Код:
|
21.03.2013, 16:16 | #2 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
Пункт 1
Эта строка кода: Код:
Путаница из-за того, что поиск с использованием "Selection" и "Range" по-разному работает и нельзя с "Range" в данном случае работать так же, как и с "Selection". Правильно вот так сделать: Код:
Пункт 2 Здесь: Код:
Пункт 3 Когда есть результат поиска, то затем поиск ведётся в найденном. В вашем случае используется ".Wrap = wdFindStop". Это означает: не продолжать поиск в оставшейся части документа. Т.е. допустим было что-то найдено. Затем поиск снова осуществляется в этом же месте, а затем останавливается. Примечание Работа с объектом "Find" сложная в программе "Word" и путаница сильная ещё из-за того, что в VBA-справке мало описано про поиск с помощью "Range", и с тем, что люди путают работу с "Selection" и "Range". Последний раз редактировалось Скрипт; 22.03.2013 в 07:36. |
25.03.2013, 10:44 | #3 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,127
|
переделал:
Код:
TextError = "" - плохо TextError1 = 2 - хорошо и ??? Последний раз редактировалось Ципихович Эндрю; 25.03.2013 в 10:47. |
25.03.2013, 10:54 | #4 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
Разобью код на две части.
Вот первая часть. Эта часть ищет в документе фразу "проверка," в начале слова. Если находит, то в переменную "TextError" помещается текст "слово повторяется". Ципихович Эндрю, напишите, что вас не устраивает в этом коде: Код:
Последний раз редактировалось Скрипт; 25.03.2013 в 11:04. |
25.03.2013, 11:17 | #5 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,127
|
спасибо
теперь то всё верно, но всё же в строке If .Execute = True Then - точка это сокращение, и что же там должно быть если не сокращать? И как сделать чтобы TextError = "слово повторяется" только в случае когда слов не менее двух - два и более? |
25.03.2013, 11:31 | #6 | |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
Цитата:
Код:
Последний раз редактировалось Скрипт; 25.03.2013 в 11:33. |
|
25.03.2013, 11:35 | #7 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,127
|
ясно
"И как сделать чтобы TextError = "слово повторяется" только в случае когда слов не менее двух - два и более?" строго через Do While ... Loop?? |
25.03.2013, 11:37 | #8 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
Ципихович Эндрю, да, только с помощью цикла можно узнать: повторяется слово или нет. В VBA-Word нет инструмента, который определяет, сколько раз встречается искомый текст.
|
25.03.2013, 11:40 | #9 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,127
|
ясно, спасибо!!!
|
25.03.2013, 17:49 | #10 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Похожие темы
http://programmersforum.ru/showthread.php?t=114149
http://programmersforum.ru/showthread.php?t=146988 Word, однако, это определяет — если при замене (Ctrl-h) нажать "Заменить все"!
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Метод Find | Trimbl | Microsoft Office Excel | 4 | 10.01.2023 17:40 |
Find next & Find previous | NeedLess | Общие вопросы C/C++ | 0 | 08.07.2012 13:42 |
Cant Find mistake | dikabraz | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 19.10.2010 20:17 |
метод find | kate158 | Общие вопросы Delphi | 4 | 15.12.2009 16:09 |