InStr 函數

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

會傳回 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.

另請參閱

字串函數及其使用方法