InStr 查找文本

文章目录
  1. 1. 功能
  2. 2. 语法
  3. 3. 参数
  4. 4. 返回值
  5. 5. 示例
  6. 6. 备注

功能

查找指定字符串在另一个字符串中第一次出现的位置

语法

结果 = InStr([起始位置, ]文本内容, 查找内容[, 对比方式])

参数

参数 数据类型 解释
起始位置 整数型 可选, 表示从哪个位置开始查找, 省略默认从第1个位置开始
文本内容 字符串 接受查找的文本内容
查找内容 字符串 要查找的内容
对比方式 整数型 可选, 表示两个文本的对比方式, 0为区分大小写, 1为忽略大小写, 省略默认为0, 若填写本参数, 则必须填写起始位置参数

返回值

整数型, 返回找到的位置, 没找到返回0, 参数与返回值关系详见下表

如果 InStr 返回
文本内容 为零长度 0
文本内容Null Null
查找内容 为零长度 起始位置
查找内容Null Null
查找内容 没有找到 0
文本内容 中找到 查找内容 找到匹配字符串的位置
起始位置 > Len(查找内容) 0

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' 要在其中搜索的字符串。
SearchChar = "P" ' 搜索 "P"。

'文本比较从第四个字符开始返回 6。
MyPos = Instr(4, SearchString, SearchChar, 1)

'二进制比较从第1个字符开始返回 9。
MyPos = Instr(1, SearchString, SearchChar, 0)

' 缺省为二进制比较(最后一个参数省略)。
MyPos = Instr(SearchString, SearchChar) ' 返回 9。

' 二进制比较从第1个字符开始返回 0 (没有找到 "W")。
MyPos = Instr(1, SearchString, "W")

备注

  • 有个衍生函数 InStrB , 这个函数使用包含在字符串中的字节数据,所以 InStrB 返回的不是一个字符串在另一个字符串中第一次出现的字符位置,而是字节位置。
  • 有个相似命令 InStrRev 倒查文本