2016-10-10 4 views
0

В основном мой код работает таким образом, что тема входящего письма из Outlook сравнивается со столбцом списка в Excel - предположительно, с существующим электронным письмом. Если входящее письмо сопоставляется с любыми записями, то оно показывает значение в Excel. Тем не менее, я заметил, что если данные в Excel содержат значение hashtag (#), даже если входящее письмо не совпадает с именем в Excel, код указывает его как совпадающий.VBA Like Function

If emlSubj Like "*" & strSubj & "*" Then 
Debug.Print strSubj 

С кодом что-то не так, или как ограничение функции LIKE?

+1

с 'Like',«*»означает любую последовательность символов, так что«#»будет соответствовать – user3598756

+0

@Wilson измените свой пост и добавьте остальную часть кода (соответствующий раздел) –

+1

' '# является подстановочный знак. http://analystcave.com/vba-like-operator/ – Marco

ответ

5

Используйте вместо этого функцию InStr. Он возвращает целое число, определяющее начальную позицию первого вхождения одной строки в другую.

If InStr(emlSubj , strSubj) > 0 Then 
    Debug.Print strSubj 
End If 
+0

Итак, я попытался использовать вышеприведенный код, но не смог сопоставить два предмета, которые я сравнивал. Например, EmlSubj - это Праздничное бронирование и StrSubj (тот, что находится в файле Excel) - это резервирование отдыха # 445. Код не был способен соответствовать двум темам. – Wilson

+0

Если InStr («Праздничное бронирование № 445», «Праздничное бронирование»)> 0 Затем Debug.Print «FOUND» Конец Если –

+0

Вам нужно указать строку, в которой вы пытаетесь сначала найти подстроку. Затем вы объявляете поисковый запрос. –