Поиск наличия определенного текста в ячейке, например, не работает

#excel #vba

Вопрос:

У меня проблема с использованием Like оператора в VBA. Если я хочу посмотреть, содержит ли ячейка определенный текст, такой как «ABC» или «CBN», Like для меня это не работает.

Кроме того, иногда ячейка может иметь значение «ABC 1», «ABC 2», «ABC 3» или что-то в этом роде. Но я просто хочу использовать Like , чтобы увидеть, есть ли в ячейке только «ABC». Это говорит о том, что это правда, даже если ячейка может сказать «ACB» или «ABD». Я хочу, чтобы это была именно азбука, и ничего больше. Как я могу это исправить?

 For Each ws In ThisWorkbook.Worksheets
        If ws.Name Like "Positions *" Then
        clause = Range("AM3") Like "ABC*"     >>>>> clause returns as TRUE if the actual cell value says ABD or ACB, this was also a test of what the line below will return
            If Range("AM3") Like "*ABC*" Then
            
            Name = "Bananas"
            
            
            End If
            
        End If
Next
 

Комментарии:

1. Я не могу воспроизвести это, но, по-видимому, это потому, что вы не определили диапазон. Всем вашим вызовам в диапазоне должны предшествовать ws.

2. Как вы думаете ws.Select , это тоже уместно? @Warcupine

3. Нет, select в 99,9% случаев в VBA нет необходимости в чем-либо.

4. Я думаю, что в этом и была проблема. Спасибо!