|
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 11
|
|
Поиск слов в тексте28.11.2009, 18:21. Показов 11472. Ответов 11
Метки нет (Все метки)
Пожалуйста, помоги с макросом. Нужно чтобы он выводил диалоговое окно, где мы бы указывали массив символов. Это первый массив. Затем запрашивается второй массив. После чего макрос ищет в тексте сочетания символов, идентичные первому массиву и, если это не конец слова, ищет конец слова и вставляет метку: {XE "второй массив"}.
Для чего это нужно: макрос поможет пометить все однокоренные слова именем второго массива, у которых корень - первый массив.
0
|
|
| 28.11.2009, 18:21 | |
|
Ответы с готовыми решениями:
11
Поиск слов выделенных курсивом в тексте, с последующей выпиской их в отдельный файл
Поиск слов в тексте |
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
|||||||||||
| 28.11.2009, 19:06 | |||||||||||
|
Ну ты блин даёшь. Я бы никогда тебе не смог бы помочь, прочитав твой вопрос.
Вот макрос
Сам указатель вставишь вручную. Добавлено через 13 минут Последний вариант. Перед применением макроса сделай копию документа на всякий пожарный.
2
|
|||||||||||
|
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 11
|
|
| 29.11.2009, 12:26 [ТС] | |
|
А как ворд ищет слова?
Я представлял, что он будет перебирать все символы подряд, пока не наткнется на: пробел, дефис, точку, запятую, ¤, знак ввода. Может еще, что забыл ![]() А такая схема походу не корректно работает. Вот пример файла И, насколько я понял, InputBox имеет стандартную форму, и кнопка OK означает записать, а Cancel - записать пустую строку. То есть отменить выполнение макроса уже нельзя
0
|
|
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
||||||||||||||||||||||||||||||||||||||||||
| 29.11.2009, 13:48 | ||||||||||||||||||||||||||||||||||||||||||
|
krendel34rus,
В этом варианте учитываются Сноски. А для Колонтитулов и Надписей Указатели не предусмотрены. Этот Макрос чувствителен к регистру, поэтому макрос для одного Корня должен применяться 2 раза: 1 раз вводишь корень с Большой буквы, 2 - с маленькой.
Да, и тебе это надо для профессиональной деятельности или 1-2 раза применить? Если 1-2 раза, то этого достаточно. Добавлено через 18 минут krendel34rus, Вот нашёл кое-что. Вставь это
При нажатии на Cancel InputBox принимает значение Empty. Также выход из программы будет происходить, если ты ничего не введёшь в поле и нажмёшь Ок. Добавлено через 30 минут krendel34rus,
Вот эта строчка мне и самому не понята
Если абстрагироваться и не вдаваться в подробности, то эта строка
Вот эта строка
InStr является функцией VBA, с помощью которой можно выяснить, есть ли в данном фрагменте, нужный нам фрагмент. oWord - это слово в документе, а x - фрагмент который мы ищем, в данном случае x является Корнем. Если в oWord есть x, то вот это выражение InStr(oWord, x) будет больше нуля, если нету, то будет равно 0. И соответственно данная строка
Затем я просто выделяю это слово и помечаю его. Пометку я записал с помощью Макрорекордера, а затем из полученного кода удалил то, что посчитал ненужным.
1
|
||||||||||||||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 11
|
||||||
| 29.11.2009, 15:26 [ТС] | ||||||
|
Спасибо за подробное разъяснение. В программе были некоторые недостатки.
Конечно же закрыл If. Далее, y почему-то действует наоборот: поставил не равно. oWord действует замечательно. Он реально ищет отдельные слова и символы. Но только функция InStr возвращает порядковый номер вхождения первого элемента x в oWord. Если х входит в oWord, значит его номер любой, кроме ноля. Вот. Busine2009, огромное спасибо за помощь!
0
|
||||||
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
||||||
| 29.11.2009, 15:32 | ||||||
|
krendel34rus,
0
|
||||||
|
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 11
|
||||||
| 29.11.2009, 15:44 [ТС] | ||||||
А If действительно не обязательно закрывать. Но у меня нет практики в VBA, поэтому пока работало и с закрытым
0
|
||||||
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
|
| 29.11.2009, 15:58 | |
|
krendel34rus,
я к тому, что тоже раньше использовал end if при закрытии в этом случае, но у меня почему-то код неправильно работал, точно не помню что, кажется не выходил из программы. Добавлено через 6 минут krendel34rus, да ты прав, я видимо забыл протестировать до конца.
0
|
|
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
|
| 29.11.2009, 18:28 | |
|
krendel34rus,
Может я ошибаюсь и не учитываю каких-нибудь факторов, но если x и y заменить на переменные с другими именами, например, xIndex и yIndex, то end if не нужен, а y можно сделать равным 0.
0
|
|
|
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 11
|
|
| 30.11.2009, 02:10 [ТС] | |
|
Мне тоже не понятно почему, но это так
0
|
|
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
|
| 30.11.2009, 05:17 | |
|
krendel34rus,
а у меня макрос с другого форума не работает, у меня очень много пометок появляется.
0
|
|
|
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 11
|
|
| 01.12.2009, 23:57 [ТС] | |
|
У меня сначала работал, причем отлично (в четыре раза быстрее поиска по каждому слову) Но когда принес на работу, почему-то тоже стал делать кучу меток на одно и то же слово, и пришлось его просто прервать. Не могу это объяснить...пока.
0
|
|
| 01.12.2009, 23:57 | |
|
Помогаю со студенческими работами здесь
12
Поиск слов в тексте Поиск слов в тексте Поиск слов тексте. Поиск слов в тексте. поиск слов в тексте Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|