Проверьте, содержит ли строка другую строку

Я хочу найти, если строка содержит в себе «,» (запятую). Есть ли у нас другой вариант, кроме чтения char-by-char?

Используйте функцию Instr

 Dim pos As Integer pos = InStr("find the comma, in the string", ",") 

вернет 15 в pos

Если не найден, он вернет 0

Если вам нужно найти запятую с формулой excel, вы можете использовать функцию =FIND(",";A1) .

Обратите внимание, что если вы хотите использовать Instr для поиска позиции vbTextCompare регистра, используйте третий параметр Instr и дайте ему const vbTextCompare (или только 1 для умирающих).

 Dim posOf_A As Integer posOf_A = InStr(1, "find the comma, in the string", "A", vbTextCompare) 

даст вам значение 14.

Обратите внимание, что вы должны указать начальную позицию в этом случае, как указано в спецификации, которую я связал: Аргумент start необходим, если указан параметр сравнения.

Вы также можете использовать специальное слово:

 Public Sub Search() If "My Big String with, in the middle" Like "*,*" Then Debug.Print ("Found ','") End If End Sub 

Существует также функция InStrRev, которая делает то же самое, но начинает поиск с конца текста до начала.

Ответ на @ Рене …

 Dim pos As Integer pos = InStrRev("find the comma, in the string", ",") 

… все равно вернет 15 в pos, но если строка содержит более одной строки поиска, как и слово «the», тогда:

 Dim pos As Integer pos = InStrRev("find the comma, in the string", "the") 

… вернет 20 в pos вместо 6.

Основываясь на ответе Рене, вы также можете написать функцию, которая вернула TRUE, если подстрока присутствовала, или FALSE, если это не так:

 Public Function Contains(strBaseString As String, strSearchTerm As String) As Boolean 'Purpose: Returns TRUE if one string exists within another On Error GoTo ErrorMessage Contains = InStr(strBaseString, strSearchTerm) Exit Function ErrorMessage: MsgBox "The database has generated an error. Please contact the database administrator, quoting the following error message: '" & Err.Description & "'", vbCritical, "Database Error" End End Function 
  • string.IsNullOrEmpty (строка) vs. string.IsNullOrWhiteSpace (строка)
  • Использование Java для поиска подстроки большей строки с использованием регулярного выражения
  • Где живут строковые литералы Java и .NET?
  • Как проверить, содержит ли String другую строку в нечувствительном к регистру в Java?
  • Почему преобразование из строковой константы в 'char *' допустимо в C, но недействительно в C ++
  • Преобразование строки в десятичную, сохранение фракций
  • Разница между + и & для присоединения строк в VB.NET
  • Сравнение строк и преобразование строк в Java
  • Как «правильно» распечатать список?
  • Как использовать регулярное выражение в методе String.contains () в Java
  • Как удалить строки из начала и конца строки (Java)?
  • Давайте будем гением компьютера.