Siehe auch: | InstrRev | 

Autor: Peter Haserodt  --- Aus Excel VBA - Gruppe: Funktionen

InStr

Autor: Peter Haserodt - Erstellt: --      - Letzte Revision: --
Die Instr-Funktion ist dient dazu, ein Vorkommen eines Strings in einem String zu prüfen.
Die Syntax ist: Instr(Start,ZuUntersuchenderText,GesuchterText,[Vergleichsart])

Start
ist ab welcher Stelle wir im Text suchen wollen, in der Regel 1 (Sucht ab Anfang des Textes)
ZuUntersuchenderText
ist der Text, in dem ich das Vorkommen suche.
GesuchterText
ist der Text, den ich finden will.
Vergleichsart
ist ein optionales Argument, welches wenn nicht angegeben vbBinaryCompare ist,
was bedeutet, dass CaseSensitiv gesucht wird. Will ich CaseInSensitiv suchen muss ich dieses Argument mit vbTextCompare angeben.

Wird der Text gefunden, so erhalte ich als Rückgabe die Startposition im Text, ansonsten erhalte ich den Wert 0 zurück.
iPos = Instr(1,"HausMaus","a") hat als Rückgabe 2
iPos = Instr(4,"HausMaus","a") hat als Rückgabe 6
iPos = Instr(5,"HausMaus","a") hat als Rückgabe 6
iPos = Instr(1,"HausMaus","y") hat als Rückgabe 0
iPos = Instr(7,"HausMaus","a") hat als Rückgabe 0

iPos = Instr(1,"HausMauser","aus") hat als Rückgabe 2
iPos = Instr(1,"HausMauser","ause") hat als Rückgabe 6

iPos = Instr(1,"HausMaus","A") hat als Rückgabe 0
iPos = Instr(1,"HausMaus","A",vbTextCompare) hat als Rückgabe 2


Nachfolgender Beispielcode sollte es weiter verdeutlichen.

Interner Tipp:
Eine Excel Schulung von einem Profi ist Gold wert!
Peter Haserodt bietet Ihnen das und noch viel mehr...
Mehr dazu unter: Schulung

Option Explicit
	
Public Sub InstrTests()
	Dim sText As String
	sText = "Ein Text mit vielen i's und ein großes I in Image"
	MsgBox InStr(1, sText, "i")
	MsgBox InStr(1, sText, "I")
	MsgBox InStr(1, sText, "I", vbTextCompare)
	MsgBox InStr(20, sText, "i")
	MsgBox InStr(1, sText, "y")
	MsgBox InStr(100, sText, "i")
End Sub
	
Public Sub InstrAlleFinden()
	Dim sText As String, iPos As Long, sAusgabe As String
	sText = "Ein Text mit vielen i's und ein großes I in Image"
	iPos = InStr(1, sText, "i") ' um auch die großen I's zu finden dann mit vbTextCompare
	Do While iPos > 0
		sAusgabe = sAusgabe & "-" & iPos
		iPos = InStr(iPos + 1, sText, "i")
	Loop
	MsgBox sAusgabe
End Sub

Weitere Artikel der Gruppe: Funktionen Aus Excel VBA
Nach oben