首先标准语法先上为敬
InStr 函数
-
返回一个 Variant (Long) 值,指定一个字符串在另一个字符串中首次出现的位置。
语法
InStr([ start ], string1, string2, [ compare ])
InStr 函数语法有以下参数:
Part 说明 start 可选。 设置每次搜索的起始位置的数字表达式。 如果忽略,则搜索从第一个字符位置开始。 如果 start 包含 Null,则出现错误。 如果指定了 compare,则 start 参数是必需的。 string1 必需。 要搜索的字符串表达式。 string2 必需。 搜索到的字符串表达式。 compare 可选。 指定字符串比较的类型。 如果 compare 为 Null,则将发生错误。 如果省略 compare,则 Option Compare 设置将决定比较的类型。 指定有效的 LCID (LocaleID) 以在比较中使用区域设置特定规则。 设置
compare 参数设置如下。
常量 值 说明 vbUseCompareOption -1 使用 Option Compare 语句的设置执行比较。 vbBinaryCompare 0 执行二进制比较。 vbTextCompare 1 执行文本比较。 vbDatabaseCompare 2 仅用于 Microsoft Access。 根据数据库中的信息执行比较。 返回值
If InStr 返回 string1 是零长度 0 string1 为 Null NULL string2 是零长度 start string2 为 Null NULL 未找到 string2 0 在 string1 中找到 string2 找到匹配的位置 start > string2 0
简单示例
Sub test()
Dim str1, str2
str1 = "aaAbbB"
str2 = "B"
Debug.Print VBA.InStr(1, str1, str2, vbBinaryCompare) 'vbBinaryCompare=0 二进制比较(区分大小写)
Debug.Print VBA.InStr(1, str1, str2, vbTextCompare) 'vbTextCompare=1 文本比较(不区分大小写)
Debug.Print VBA.InStr(str1, str2) '默认是vbBinaryCompare=0,区分大小写的
End Sub
instr有时候比find好用。