VBA InStr |使用Excel VBA InStr函数的前5个示例

Excel VBA InStr函数

引入VBA 在我们指定函数的比较方法后,用于查找字符串中给定子字符串的位置,此函数有四种不同的比较方法,Instr是字符串函数,但函数返回的输出是数字,因此输出此函数是一个整数变量。

VBA中的字符串不过是一系列字符,即所有带双引号的文本都被视为字符串。 InStr函数是用于处理字符串的内置文本函数。例如–如果要从句子中提取子字符串,或者要对一系列字符中的特定字符串应用字体设计更改,或者要查找字符的位置和许多其他可能性,则可以使用InStr。

句法

它具有4个自变量,如下图所示。

  • [开始]: 这不是强制性的。这是我们需要指定的数值,字符串Instr函数从哪个位置开始寻找提供的文本。例如:如果要搜索字符 “一种” 一句话 “班加罗尔” 从第3个位置开始,我们需要将Instr函数的起始位置告诉为3。因此从第3个位置开始 “一种” 在第五位。如果忽略此参数,则默认值为1。
  • 字串1: 这是我们提供的实际字符串,即我们正在尝试从此文本中查找子字符串。例如,如果您要查找字符串 “一种” “班加罗尔” 班加罗尔的字符串1。
  • 字串2: 这不过是我们要搜索的字符串。例如,如果您要查找字符串 “一种” “班加罗尔” 字符串2是 一种.
  • [比较]: 这也是一个可选参数。 [compare]参数中提供三种选项。

  • vbBinaryCompare: 这只不过是对字符串1中的子字符串(字符串2)进行区分大小写的搜索。例如,如果我们要搜索 “一种” 一句话 “班加罗尔” 如果您正在搜索,Instr将返回2作为结果 “一种” 字里行间 “班加罗尔” 因为提供的字符串是大写值,所以Instr将返回0作为结果。

我们还可以将零(0)作为参数。

vbTextCompare: 这不是对字符串1中的字符串2的区分大小写的搜索。例如,如果我们要搜索 “一种” 一句话 “班加罗尔” 如果您正在搜索,Instr将返回2作为结果 “一种” 一句话 “班加罗尔” Instr也将返回2。逻辑是A = a,B = b,C = c等。

我们还可以将一(1)作为参数。

vbDatabaseCompare: 这用于比较数据库(即Microsoft Access数据库)中的信息。

我们还可以将一(-1)作为参数。

使用VBA Instr函数的前5个示例

您可以在此处下载此VBA Instr功能Excel模板– VBA Instr功能Excel模板

范例#1

让我们从第一个示例开始。一句话 班加罗尔 找到角色的位置 一种。

下面的代码将为我们执行任务。

代码:

 Sub Instr_Example1()Dim i As Variant i = InStr(“ Bangalore”,“ a”)MsgBox i End Sub 

现在,使用F5键运行上述VBA代码,或者也可以手动运行此代码,如下面的屏幕快照所示。

输出:

范例#2

现在的话 班加罗尔 找到角色的位置 “一种” 从第三位置开始。

以下代码将为我们执行任务。

代码:

 Sub Instr_Example2()Dim i作为变体i = InStr(3,“ Bangalore”,“ a”)MsgBox i End Sub 

为了运行上面给出的代码,您可以使用F5键,也可以手动运行此代码,如下面给出的屏幕快照所示。

输出:

现在,在上图中,查看与先前代码的区别。由于我们已将字符的起始位置提到为3,因此忽略了第一个字符 “一种” 在第二个位置。

例子#3

现在,我们将看到区分大小写的搜索。一句话 班加罗尔 找到信 “一种”。

为此,我们需要提供compare参数作为 vbBinaryCompare。

代码:

 Sub Instr_Example3()Dim i As Variant i = InStr(1,“ Bangalore”,“ A”,vbBinaryCompare)MsgBox i End Sub 

现在,使用F5键运行此代码,或者您也可以手动运行此代码。

输出:

由于我们提供了compare参数为 vbBinaryCompare Instr函数返回的结果为零,因为没有大写字母 “一种” 存在。

例子#4

现在,我们将看到另一种区分大小写的搜索。一句话 班加罗尔 找到信 “一种”。 前面的示例返回结果为零。

为了克服此处区分大小写的方法,我们需要提供compare参数作为 vbTextCompare。

代码:

 Sub Instr_Example4()Dim i As Variant i = InStr(1,“ Bangalore”,“ A”,vbTextCompare)MsgBox i End Sub 

现在,使用F5键运行此代码,或者您也可以手动运行此代码。

输出:

范例#5

现在,我们将看到Instr函数的高级级别。如果您有许多名称大致相同的工作表,并且想一次隐藏所有这些工作表,我们可以使用下面的代码来隐藏特定的工作表。

例如,我有5张名为 摘要1,摘要2,摘要3,摘要4和数据表。

现在我要隐藏所有带有单词的表 “概括”。 使用以下代码隐藏名称中包含单词Summary的所有工作表。

代码:

 Sub To_Hide_Specific_Sheet()在ActiveWorkbook.Worksheets中将Ws作为工作表的Wim缩小为InStr(Ws.Name,“ Summary”)> 0然后Ws.Visible = xlSheetVeryHidden End如果下一个Ws'InStr函数在工作表名称中查找单词或短语'如果找到,它将被隐藏起来。 

现在,使用F5键运行此代码,或者您也可以手动运行此代码并查看输出。

同样,为了取消隐藏所有这些工作表,请使用以下代码。

代码:

 Sub To_UnHide_Specific_Sheet()在ActiveWorkbook.Worksheets中将Ws作为工作表的Ws缩小为InStr(Ws.Name,“ Summary”)> 0然后Ws.Visible = xlSheetVisible结束如果下一个Ws'InStr函数在工作表名称中查找单词或短语'如果找到,它将被隐藏起来。 

现在,使用F5键运行此代码,或者您也可以手动运行此代码并查看输出。

要记住的事情

  • Instr是区分大小写的函数。为了消除此区分大小写的问题,您需要提供[compare]参数为。
  • 如果要搜索区分大小写的字符,则需要提供[compare]参数,因为默认情况下,即使不提供,VBA也会将其用作参数。
  • Instr是VBA函数,因此您不能像其他内置公式一样在excel工作表中使用它。
  • 如果函数找不到字符串2,则结果将为零。