문자열에 “,”(쉼표)가 들어 있는지 확인하고 싶습니다. char-by-char를 읽는 것 이외의 다른 옵션이 있습니까?
답변
사용 측량기의 기능을
Dim pos As Integer
pos = InStr("find the comma, in the string", ",")
pos에서 15를 반환합니다
찾지 못하면 0을 반환합니다
엑셀 수식으로 쉼표를 찾아야하는 경우 =FIND(",";A1)
함수를 사용할 수 있습니다 .
Instr
대소 문자를 구분하지 않는 문자열의 위치를 찾는 데 사용 하려면 Instr의 세 번째 매개 변수를 사용하고 const vbTextCompare
(또는 다이 하드의 경우 1)를 제공하십시오.
Dim posOf_A As Integer
posOf_A = InStr(1, "find the comma, in the string", "A", vbTextCompare)
14의 가치를 줄 것입니다.
이 경우 링크 된 사양에 명시된대로 시작 위치를 지정해야 합니다. 비교가 지정된 경우 시작 인수가 필요합니다.
답변
특수 단어를 사용할 수도 있습니다 like
.
Public Sub Search()
If "My Big String with, in the middle" Like "*,*" Then
Debug.Print ("Found ','")
End If
End Sub
답변
동일한 유형의 작업을 수행하지만 텍스트의 끝에서 시작으로 검색을 시작 하는 InStrRev 함수 도 있습니다 .
@rene의 답변에 따라 …
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")
… 6 대신 20을 pos로 되돌립니다.
답변
Rene의 답변을 바탕으로 하위 문자열이 있으면 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