excel vba - пользовательская формула для Contains () - PullRequest
1 голос
/ 03 сентября 2011

Если бы у меня был такой столбец:

ColumnA
-------
NUMBER
VARCHAR(50 BYTE)
TIMESTAMP

Я ищу функцию vba, которая бы работала так:

содержит ("строка для поиска", ячейка дляискать его в) т.е.= содержит ("VARCHAR", A2), и если ячейка содержит его (где-либо в ячейке - не нужно начинать или заканчивать ячейку), то заполните ячейку (которая использует функцию) "T", иначе "F".

в моем примере:

ColumnB
-------
F
T
F

Могу ли я затем использовать эту функцию внутри другого кода VBA, например:

If Len(A2) > 10 and contains("CHAR",A2) Then
 //do stuff
End If

Если они должны бытьотдельные функции (для использования в ячейках, возвращающих «T» / «F» и для использования в другом коде VBA), укажите оба.

1 Ответ

3 голосов
/ 03 сентября 2011

Вы хотите VBA InStr

Например, в модуле;

Public Function Contains(Text As String, Cell As Range) As String
   If InStr(1, Cell.Value, Text, vbTextCompare) Then '//case insensitive
       Contains = "T"
   Else
       Contains = "F"
   End If
End Function

Включает =Contains("blah", A1) в листе

...