Excel VBA InStr17 Mar 2025 | 阅读 2 分钟 VBA InStr 函数用于检查一个字符串是否在另一行文本中找到。 它返回其出现操作的第一个位置。 如果未找到文本,则返回 0;否则,它返回找到文本的字符。 VBA InStr 函数通过使用运算符执行精确匹配或不精确匹配。 通过使用通配符,它执行模式匹配。 InStr 是一个 VBA 函数,但不是一个工作表函数。 这意味着我们不能在工作表中使用 Instr 函数。 语法说明- [开始]: 这是一个可选的整数参数,表示我们要从中开始搜索的位置。
- String1: 这是我们要搜索的父字符串的主字符串。
- String2: 这是我们要搜索的子字符串。
- [比较]: 这是一个可选参数,它指定我们要进行的比较类型。
比较参数设置在下表中给出 VBA 常量 | 值 | 描述 |
---|
vbUseCompareOption | -1 | 它执行比较 | vbBinaryCompare | 0 | (默认) 区分大小写 | vbTextCompare | 1 | 它不区分大小写 | vbDatabaseCompare | 2 | 使用数据库中的信息执行比较。 |
- vbUseCompareOption: 它借助 Option Compare 语句的设置执行比较。
- vbBinaryCompare: 它逐字符执行比较。 例如,如果我们在“Excel”中搜索“x”,它将返回 2,但如果我们在“Excel”中搜索“X”,它将返回 0,因为 X 是大写的。 我们也可以使用 0 而不是 vbBinaryCompare。 如果省略了 [比较] 参数,则 vbBinaryCompare 被视为默认值。
- vbTextCompare: 它执行文本比较。 例如,如果我们在 Excel 中查找“x”或“X”,它在这两种情况下都会返回 2。此参数忽略字母大小写。 我们也可以使用 1 而不是 vbTextCompare。
- vbDatabaseCompare: 它执行数据库比较,这仅用于 Microsoft Access。
一些重要的点是 - 如果子字符串或 String2 为空,则该函数将返回 [Start] 参数的值。
- 如果 VBA InStr 函数在主字符串中找不到子字符串,它将返回 0。
示例示例 1: 让我们按照以下代码找到字符“r”在单词“Paris”中的位置,例如  现在使用 F5 键运行上述代码,或者您也可以手动运行代码,您将获得以下输出,例如  示例 2: 让我们找到字符“A”在单词“Paris”中的位置。 我们将使用 compare 参数作为vbBinaryCompare,如以下屏幕截图所示  现在执行上面的程序,提供的 compare 参数为vbBinaryCompare,InStr 函数返回零,因为单词“Paris”中不存在大写字母“A”。 
|