Есть ли способ использовать символы подстановки, чтобы найти точное совпадение? - PullRequest
0 голосов
/ 20 марта 2019

Я понимаю, что подстановочный знак можно использовать для поиска дополнительных символов в начале слова при фильтрации. Например, если я фильтрую слово «Продажи», я могу заменить свой фильтр на «Продажи *», чтобы найти дополнительные символы помимо первых пяти. Есть ли способ использовать символ для остановки и фильтрации именно «Продажи», т. Е. Чтобы результаты «Операции с продажами» не были включены?

Я попробовал это, и я подумал, что это работает, но понял, что это не так.

With Thisworkbook.Sheets("Sheet1")
    If .Range("A2").Value = "Sales" Then
        .Range("A2").Replace "Sales", "Sales?"
    End If
End With

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Заменить проблему

Вы нигде не сказали этого явно, но я предполагаю, что вы использовали свой код:

With Thisworkbook.Sheets("Sheet1")
    If .Range("A2").Value = "Sales" Then
        .Range("A2").Replace "Sales", "Sales?"
    End If
End With

, и в результате он заменил, например, Sales Operations с Sales? Operations, которого вы не хотели бы иметь.

Метод Replace имеет 8 аргументов, в то время как вы использовали только очевидные первые два:

What и Replacement

Причиной вашего горя было то, что из-за последней выполненной вами операции Find или Replace третий аргумент LookAt был установлен на xlPart, что означает, что он найдет или заменит любоевхождение в ячейку, содержащую ваш параметр What, «Продажи».Это легко исправить, изменив вашу строку на:

.Range("A2").Replace "Sales", "Sales?", xlWhole

Теперь, подобно LookAt, есть еще два важных аргумента, которые сохраняются каждый раз, когда выполняется замена или поиск :

SearchDirection и MatchCase

, которые также лучше всего устанавливать каждый раз при выполнении Replace или Find.

Вам следует тщательно изучить эти два методапотому что они не так просты, как можно подумать.

1 голос
/ 20 марта 2019

Вам не нужно использовать функцию подстановки.Если вы записываете макрос, используйте функцию «Заменить», выберите «Параметры» и отметьте «Match entire cell contents», вы увидите код, подобный следующему.

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