📜  Excel VBA InStr

📅  最后修改于: 2021-01-11 14:19:49             🧑  作者: Mango

Excel VBA InStr

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

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

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

句法

InStr([Start], String1, String2, [Compare])

说明

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

下表给出了compare参数的设置:

VBA Constant Value Description
vbUseCompareOption -1 It Performs a comparison
vbBinaryCompare 0 (Default) case-sensitive
vbTextCompare 1 It is Not case-sensitive
vbDatabaseCompare 2 Uses the information in the database to perform the comparison.
  • vbUseCompareOption:它在Option Compare语句的设置帮助下执行比较。
  • vbBinaryCompare:它执行由字符比较的字符。例如,如果我们在“ Excel”中搜索“ x”,它将返回2,但是如果我们在“ Excel”中搜索“ X”,则将返回0,因为X是大写。我们也可以使用0而不是vbBinaryCompare。如果省略[Compare]参数,则将vbBinaryCompare用作默认值。
  • vbTextCompare:它执行文本比较。例如,如果我们在Excel中查找“ x”或“ X”,则在两种情况下都将返回2。此参数忽略字母大小写。我们也可以使用1而不是vbTextCompare。
  • vbDatabaseCompare:它执行数据库比较,并且仅用于Microsoft Access。

一些要点是:

  • 如果substring或String2为空,则该函数将返回[Start]参数的值。
  • 如果VBA InStr函数在主字符串找不到子字符串,则它将返回0。

例子

示例1:遵循以下代码,找到单词“巴黎”中字符“ r”的位置,例如:

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

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

现在执行上述程序,由于单词“ Paris”中不存在大写的“ A”字母,因此提供的比较参数vbBinaryCompare InStr函数将返回零。