Instr 函数

返回一个字符串在另一个字符串中首次出现的位置。

语法

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

参数:

  • Start可选。用于设置每次搜索的起始位置的数字表达式。如果省略,则搜索从第一个字符位置开始。如果 start 包含 Null,则会出现错误。如果指定了 compare,则必须提供 start 参数。
  • string1必需。正在搜索的字符串表达式。
  • string2必需。搜索的字符串表达式。
  • Compare可选。指示对子字符串进行求值时要使用的比较类型的数值。有关值,请参阅“设置”部分。如果省略,将执行二进制比较。
  • 设置:compare 参数可以具有以下值。

    表 11-15 比较常量和说明

    常量 说明
    vbBinaryCompare 0 执行二进制比较
    vbTextCompare 1 执行文本比较

返回值

InStr 函数返回以下值:

表 11-16 Instr 函数返回值

如果 InStr 返回
string1 为零长度 0
string2 为零长度 起始位置
未找到 string2 0
在 string1 中找到了 string2 找到匹配项的位置。
start > Len(string2) 0

注释

以下示例使用 InStr 搜索字符串:

示例 1

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.  
SearchChar = "P"   ' Search for "P".
MyPos = Instr(SearchString, SearchChar)   ' Comparison is binary by default (last argument is omitted). 
' Output: 9

示例 2

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(1, SearchString, SearchChar)   
' Comparison is binary by default (last argument is omitted)
' Default Comparison starting at the first character
' Output: 9    

示例 3

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(4, SearchString, SearchChar, 1)   ' A textual comparison starting at position 4.
'Output: 6
MyPos = Instr(1, SearchString, SearchChar, 0)   ' A binary comparison starting at position 1. 
'Output: 9

示例 4

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(1, SearchString, "W")   ' A binary comparison starting at position 1.
'Output: 0 ("W" is not found).