InStr 函數

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

會傳回 Variant (Long),指定另一個字串內某個字串的第一個出現位置。

請參閱一些範例

語法

InStr ([start, ] string1, string2 [, compare ] )

InStr 函數語法具有下列引數:

引數 描述
開始 可省略。 設定每個搜尋起始位置的數值運算式。 如果省略,則會從第一個字元位置開始搜尋。 如果 start 包含 Null,則會發生錯誤。 如果指定比較,則需要 start 引數。
字串1 必要。 正在搜尋字串運算式。
字串2 必要。 字串運算式已找到。
compare 可省略。 指定字串比較的類型。 如果 比較 為 Null,則會發生錯誤。 如果省略比較,則 OptionCompare 設定將決定比較類型。 指定有效的 LCID (LocaleID) ,以便在比較中使用地區設定特定的規則。

秘訣

運算式產生器具有 IntelliSense,因此您可以查看運算式需要哪些引數。

設定

比較引數設定如下:

常數 描述
vbUseCompareOption -1 使用 Option Compare 陳述式的設定執行比較。
vbBinaryCompare 0 執行二進位比較。
vbTextCompare 1 執行文字比較。

傳回值

If InStr 傳回
字串1 的長度為零 0
字串1 為 Null Null
字串2 的長度為零 開始
字串2 為 Null Null
找不到字串2 0
string2 位於 string1 內 找到相符符的位置
start > 字串2 0

註解

InStrB 函數是搭配字串中包含的位元組資料使用。 InStrB 不會傳回一個字串在另一個字串中第一次出現的字元位置,而是傳回位元組位置。

範例

在運算式中使用 InStr 函數 您可以在任何可以使用運算式的位置使用 InStr 。 例如,如果您想要尋找第一個句點 (的位置) 在 包含 IP 位址的欄位中, (名為 IPAddress) ,您可以使用 InStr 來尋找它,方法如下:

InStr (1,[IPAddress],“.”)

InStr 函數會檢查 IPAddress 欄位中的每個值,並傳回第一個期間的位置。 因此,如果 IP 位址的第一部分是 10.,函數會傳回值 3。

然後,您可以使用其他函式,在 InStr 函式的輸出上操作,以擷取第一個句點之前的 IP 位址部分,就像這樣:

Left ([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.

另請參閱

字串函數及其使用方法