會傳回 Variant (Long),指定另一個字串內某個字串的第一個出現位置。
語法
InStr ([起始, ] string1, string2 [, reference ] )
InStr 函式語法包含以下參數:
| 引數 | 描述 |
|---|---|
| 開始 | 可省略。 數值表達式,設定每次搜尋的起始位置。 若省略,搜尋從第一個字元位置開始。 若 start 包含 Null,則會發生錯誤。 如果指定了比較,則需要使用起始參數。 |
| 字串1 | 必要。 字串表達式正在搜尋。 |
| string2 | 必要。 尋找弦線表情。 |
| compare | 可省略。 指定字串比較的類型。 如果 比較 為零,則會發生錯誤。 若省略比較,OptionCompare 設定決定比較類型。 指定有效的 LCID (LocaleID) 以使用區域專屬規則進行比較。 |
秘訣
表達式建構器有 IntelliSense,所以你可以看到表達式需要哪些參數。
設定
比較參數的設定如下:
| 恆定 | 值 | 描述 |
|---|---|---|
| vbUseCompareOption | -1 | 使用選項 比較 語句的設定進行比較。 |
| vbBinary比較 | 0 | 進行二元比較。 |
| vbText比較 | 1 | 進行文本比較。 |
回報價值
| If | InStr 回歸 |
|---|---|
| 字串1為零長度 | 0 |
| string1 是 Null | Null |
| 字串2為零長度 | 開始 |
| string2 是 Null | Null |
| 找不到 string2 | 0 |
| string2 存在於 string1 中 | 匹配點所在的位置 |
| 起始 > 字串2 | 0 |
註解
InStrB 函式用於包含在字串中的位元組資料。 InStrB 不會回傳一個字串在另一個字串中首次出現的字元位置,而是回傳位元組的位置。
範例
在表達式中使用 InStr 函式 你可以在能用表達式的地方使用 InStr 。 例如,如果你想在包含 IPAddress) (IP 位址的欄位中尋找第一個句點 (.) 的位置,你可以使用 InStr 來尋找它,如下:
InStr (1,[IPAddress],“.”)
InStr 函式檢視 IPAddress 欄位中的每個值,並回傳第一段時間的位置。 因此,如果 IP 位址的第一部分是 10.,函式會回傳值 3。
接著你可以利用其他函式,操作 InStr 函數的輸出,提取第一段之前的 IP 位址部分,如下所示:
左 ([IPAddress], (InStr (1,[IPAddress],“。”) -1) )
在此範例中, InStr (1,[IPAddress],」) 返回第一階段的位置。 減去1則決定第一句點前有多少字元,此例為2。 Left 函式接著從 IPAddress 欄位的左側擷取相同數量的字元,回傳值 10。
在 VBA 程式碼中使用 InStr
注意
下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。
此範例使用 InStr 函數回傳一個字串首次出現於另一個字串的位置。
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.