Dim pos AsInteger
pos = InStr("find the comma, in the string",",")
wird 15 in pos zurückgeben
Wenn nicht gefunden, wird 0 zurückgegeben
Wenn Sie das Komma mit einer Excel-Formel suchen müssen, können Sie die =FIND(",";A1)Funktion verwenden.
Beachten Sie, dass Sie, wenn Sie Instrdie Position eines Strings ermitteln möchten, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird, den dritten Parameter von Instr verwenden und ihm die vbTextCompareKonstante geben (oder nur 1 für eingefleischte Zeichenfolgen).
Dim posOf_A AsInteger
posOf_A = InStr(1,"find the comma, in the string","A", vbTextCompare)
gibt Ihnen einen Wert von 14.
Beachten Sie, dass Sie in diesem Fall die Startposition angeben müssen, wie in der von mir verknüpften Spezifikation angegeben: Das Startargument ist erforderlich, wenn compare angegeben ist.
Aufbauend auf Renes Antwort könnten Sie auch eine Funktion schreiben, die entweder TRUE zurückgibt, wenn der Teilstring vorhanden ist, oder FALSE, wenn dies nicht der Fall ist:
PublicFunction Contains(strBaseString AsString, strSearchTerm AsString)AsBoolean'Purpose: Returns TRUE if one string exists within anotherOnErrorGoTo ErrorMessage
Contains = InStr(strBaseString, strSearchTerm)ExitFunction
ErrorMessage:
MsgBox "The database has generated an error. Please contact the database administrator, quoting the following error message: '"& Err.Description &"'", vbCritical,"Database Error"EndEndFunction
Was für einen Datenbankfehler erwarten wir in dieser Funktion? Die Fehlerbehebung und die Fehlermeldung scheinen völlig sinnlos zu sein.
Roobie Nuby
11
@RoobieNuby Das ist nur meine Standardfehlerbehandlung. Ich habe es in alle meine Funktionen integriert, denn wenn etwas schief geht, möchte ich, dass die Mitarbeiter mich anrufen und nicht versuchen, es selbst zu beheben.
INSTR
für Sie?Antworten:
Verwenden Sie die Instr- Funktion
wird 15 in pos zurückgeben
Wenn nicht gefunden, wird 0 zurückgegeben
Wenn Sie das Komma mit einer Excel-Formel suchen müssen, können Sie die
=FIND(",";A1)
Funktion verwenden.Beachten Sie, dass Sie, wenn Sie
Instr
die Position eines Strings ermitteln möchten, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird, den dritten Parameter von Instr verwenden und ihm dievbTextCompare
Konstante geben (oder nur 1 für eingefleischte Zeichenfolgen).gibt Ihnen einen Wert von 14.
Beachten Sie, dass Sie in diesem Fall die Startposition angeben müssen, wie in der von mir verknüpften Spezifikation angegeben: Das Startargument ist erforderlich, wenn compare angegeben ist.
quelle
Sie können auch das spezielle Wort verwenden
like
:quelle
Es gibt auch den InStrRev Funktion, die das Gleiche tut, aber vom Ende des Textes bis zum Anfang mit der Suche beginnt.
Per @ renes Antwort ...
... würde immer noch 15 zu pos zurückgeben, aber wenn die Zeichenfolge mehr als eine der Suchzeichenfolgen enthält, wie das Wort "the", dann:
... würde 20 statt 6 auf pos zurückgeben.
quelle
Aufbauend auf Renes Antwort könnten Sie auch eine Funktion schreiben, die entweder TRUE zurückgibt, wenn der Teilstring vorhanden ist, oder FALSE, wenn dies nicht der Fall ist:
quelle