检查一个string是否包含其他string

我想查找一个string是否包含“,”(逗号)。 除了读char-by-char之外,还有别的select吗?

使用Instrfunction

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

将返回15在pos

如果没有find它将返回0

如果您需要使用Excel公式查找逗号,则可以使用=FIND(",";A1)函数。

注意,如果你想使用Instr来查找string不区分大小写的位置,可以使用Instr的第三个参数,并给它一个const vbTextCompare (或者对于顽固派来说只是1)。

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

会给你14的价值。

请注意,在这种情况下,必须指定起始位置,如规范I所链接的: 如果指定了比较,则需要起始参数。

您也可以使用如下特殊字词:

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

还有InStrRev函数可以完成相同types的事情,但是从文本的末尾开始search到开头。

Per @ rene的回答是…

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

…仍然会返回15到pos,但如果string有多个searchstring,如单词“the”,那么:

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

…将返回20,而不是6。

根据Rene的回答,你也可以写一个函数,如果子string存在则返回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