Excel VBA: «Like» неправильно возвращает True и False с Chr 35 - PullRequest
1 голос
/ 11 марта 2019

Я пытаюсь использовать условный оператор в более крупном проекте, который срабатывает, когда за числом следует знак фунта / хеша (#).Это не работало в проекте, поэтому я сделал простой тест и получил странные, нелогичные результаты.

Может кто-нибудь поделиться, почему первый оператор MsgBox возвращает здесь true, а второй возвращает false?А также, как я могу точно вернуть true, если после числа стоит знак "#"?

Sub Testing()

Dim mystring As String

    mystring = "43"
        MsgBox mystring Like "#" & Chr(35) 'Returns True

    mystring = "43#"
        MsgBox mystring Like "#" & Chr(35) 'Returns False

End Sub

1 Ответ

3 голосов
/ 11 марта 2019

Необходимо экранировать некоторые символы:

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/like-operator

Для соответствия специальным символам левая скобка ([), знак вопроса (?), Знак числа (#),и звездочку (*), заключите их в квадратные скобки.Правая скобка (]) не может использоваться внутри группы для сопоставления, но она может использоваться вне группы как отдельный символ.

? "3#" like "#[#]" '>> True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...