Instr function is to get the position of the first occurrence of one string within another. The search String is from left to right inside another String to get the position for example we wish to get the position of back slash "\" from path "C:\Users\UserName\Desktop\MyBook.xlsx", if start from 1 then the position of back slash is 3 but if we start from 5 then the position is 9.
Syntax : InStr(Start,String1,String2,Compare Value) , Returns : Long
Constant | Value | Description |
vbUseCompareOption | -1 | Performs a comparison by using the setting of the Option Compare statement. |
vbBinaryCompare | 0 | Performs a binary comparison. |
vbTextCompare | 1 | Performs a textual comparison. |
vbDatabaseCompare | 2 | Microsoft Access only. Performs a comparison based on information in your database. |
Normally for Compare Value we use 0 (case sensitive and default) or 1.Usually we omitted this value to let default which is equal to 0 (binary comparison). For more clear explanation refer below picture.
VBA Vode: (Example to get Postion of Back slash \)
Sub Examples_InStr()
Dim StrLink As String
StrLink = "C:\Users\UserName\Desktop\MyBook.xlsx"
'To Get C:\ from above string
Debug.Print Left(StrLink, InStr(1, StrLink, "\", 1))
'To Get xlsx from above string
Debug.Print Right(StrLink, Len(StrLink) - InStr(1, StrLink, ".", 1))
End Sub
VBA Vode: (Example to check existance of Name keyword)
Sub Examples_InStrTest()
Dim StrLink As String
Dim iPos As Long
StrLink = "C:\Users\UserName\Desktop\MyBook.xlsx"
iPos = InStr(1, StrLink, "Name")
If iPos = 0 Then
MsgBox "Keyword Name not found."
Else
MsgBox "Keyword Name found Start at= " & iPos
End If
End Sub
Note:
Usually we use InStr Function combine with other functions like Left,Right,Mid,Len and etc.
excel programming, excel vba at below links.
Microsoft Reference-Instr-function
Other Reference-Instr-function.htm
Leave your comments if you have any request.
Practice makes perfect.
Thank You.
No comments:
Post a Comment