Microsoft Lab
全部软件
Excel字符串处理(String Manipulation)约 5 分钟

InStr Function InStr 函数

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


基础用法

Dim state As String
state = "Virginia"
MsgBox InStr(state, "gin")

结果:4("gin" 从第 4 个字符开始出现)。


指定起始搜索位置

Dim state As String
state = "South Carolina"
MsgBox InStr(state, "o")
MsgBox InStr(7, state, "o")

第一个 MsgBox 结果是 2(从头开始找,第一个 "o" 在第 2 位);第二个从第 7 个字符开始找,结果是 10(找到后面那个 "o")。


找不到时返回 0

Dim state As String
state = "Florida"
MsgBox InStr(state, "us")

结果:0("us" 不在 "Florida" 里)。


搭配 IF 做「是否包含」判断

Dim state As String, substring As String
state = Range("A2").Value
substring = Range("B2").Value
If InStr(state, substring) > 0 Then
    Range("C2").Value = "Found"
Else
    Range("C2").Value = "Not Found"
End If

不区分大小写搜索

Dim state As String, substring As String
state = Range("A2").Value
substring = Range("B2").Value
If InStr(1, state, substring, vbTextCompare) > 0 Then
    Range("C2").Value = "Found"
Else
    Range("C2").Value = "Not Found"
End If

加上 vbTextCompare 参数(此时起始位置参数不能省略),搜索就不再区分大小写。


学完你会

常见错误

  • 忘记 InStr 找不到时返回的是 0,不是空字符串或报错,判断条件写错
  • 想用 vbTextCompare 却漏写前面的起始位置参数,导致语法错误
  • 把 InStr(a, b)(在 a 里找 b)的参数顺序搞反

Sources

Blog / Website:

  1. InStr
只记在你的浏览器里,换设备不会同步。