Как сопоставить шаблон подстановочного знака в макросе Excel - PullRequest
0 голосов
/ 07 августа 2009

У меня есть тест как

LEFT('F13',2)='F1'

Я хочу изменить его с левого соответствия на тест с поддержкой подстановочных знаков

'F13'='F?3'

Excel не поддерживает регулярные выражения, кроме как в коде VBA, но я бы предпочел, чтобы это было сделано в макросе. Я должен отметить, что настоящий тест - это не простая строка, а ссылки на ячейки (это может быть важно, я не уверен):

IF(LEFT($DATA.$A$2:$A$1501,LEN($B$3))=$B$3,...

Диапазон фактически оценивается в одну ячейку в зависимости от того, откуда вызывается макрос. $ B $ 3 - это шаблон, введенный пользователем.

1 Ответ

0 голосов
/ 07 августа 2009

= ПОИСК ( "F? 3", "F13") = 1

Во втором примере, если B3 содержит подстановочный текст, вставленный в текст

= SEARCH (B3, $ DATA $ A $ 2:. $ A $ 1501) = 1

SEARCH возвращает позицию, в которой он находит первый аргумент. «= 1» гарантирует, что строка начинается с первого аргумента, а не где-то посередине. Я не уверен, как работает ваш аргумент $ DATA, поэтому я просто скопировал его дословно.

...