Excel VBA InStr

17 Mar 2025 | 阅读 2 分钟

VBA InStr 函数用于检查一个字符串是否在另一行文本中找到。 它返回其出现操作的第一个位置。 如果未找到文本,则返回 0;否则,它返回找到文本的字符。

VBA InStr 函数通过使用运算符执行精确匹配或不精确匹配。 通过使用通配符,它执行模式匹配。

InStr 是一个 VBA 函数,但不是一个工作表函数。 这意味着我们不能在工作表中使用 Instr 函数。

语法

说明

  1. [开始]: 这是一个可选的整数参数,表示我们要从中开始搜索的位置。
  2. String1: 这是我们要搜索的父字符串的主字符串。
  3. String2: 这是我们要搜索的子字符串。
  4. [比较]: 这是一个可选参数,它指定我们要进行的比较类型。

比较参数设置在下表中给出

VBA 常量描述
vbUseCompareOption-1它执行比较
vbBinaryCompare0(默认) 区分大小写
vbTextCompare1它不区分大小写
vbDatabaseCompare2使用数据库中的信息执行比较。
  • 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”中的位置,例如

Excel VBA InStr

现在使用 F5 键运行上述代码,或者您也可以手动运行代码,您将获得以下输出,例如

Excel VBA InStr

示例 2: 让我们找到字符“A”在单词“Paris”中的位置。 我们将使用 compare 参数作为vbBinaryCompare,如以下屏幕截图所示

Excel VBA InStr

现在执行上面的程序,提供的 compare 参数为vbBinaryCompare,InStr 函数返回零,因为单词“Paris”中不存在大写字母“A”。

Excel VBA InStr
下一篇VBA MsgBox