Оператор OR внутри оператора Selection.Find.Execute - PullRequest
0 голосов
/ 18 января 2019

Недавно у меня был тот же вопрос, но, возможно, я добавил слишком много деталей. Я хочу сосредоточиться только на операторе «ИЛИ» с помощью оператора Selection.Find.Execute, который прекрасно работает, если я ищу только одну вещь, то есть в приведенном ниже примере, если я пытаюсь найти запятую или точку, но если я пытаюсь чтобы использовать оператор ИЛИ для проверки любой из этих двух возможностей, таких как запятая или точка, Word VBA выдает ошибку несоответствия типов.

Это прекрасно работает:

Selection.Find.Execute "*,", , , True

Это дает ошибку несоответствия типов:

Selection.Find.Execute "(*,)" Or "(*.)", , , True

Пожалуйста, предложите обходной путь. Спасибо

Ответы [ 3 ]

0 голосов
/ 18 января 2019

Как уже упоминалось в этом другом обсуждении , на которое вы ссылаетесь: невозможно использовать OR или AND как часть Find функциональности Word. Это просто не поддерживается. Либо поисковый термин должен быть в состоянии найти все варианты (что иногда возможно), либо необходимо выполнить два отдельных поиска.

0 голосов
/ 19 января 2019

В этом случае вы можете использовать один подстановочный знак Найти выражение:

Selection.Find.Execute "(*[,.])", , , True
0 голосов
/ 18 января 2019

Конечно! Компьютеры не «думают», как люди. Предполагая, что ваш код работает без OR, присвойте результат каждого поиска

Selection.Find.Execute "(*,)", , , True
and
Selection.Find.Execute "(*.)", , , True

к переменной и примените логику OR к двум результатам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...