VBA InStrRev |如何使用Excel VBA InStrRev函数?
Excel VBA INSTRREV
VBA INSTRREV 功能,代表 “反向输入”,从另一个字符串的结尾(从右到左)开始,从另一个字符串中返回搜索字符串(子字符串)中第一次出现的位置,我们从该字符串的末尾开始寻找可搜索的字符串。
INSTRREV 函数从需要查找的字符串的末尾开始搜索可搜索的字符串,但从头算起位置。还有一个 仪器 vba功能(代表 “字符串”),它还会在另一个字符串中搜索一个字符串并返回位置,但是此函数从我们从中搜索可搜索字符串的字符串的开头开始搜索。
INSTRREV 和 仪器,两者都是内置的 字符串/文本VBA功能 MS Excel。我们可以在Microsoft Visual Basic编辑器中编写任何宏时使用它们。
句法
如上图所示,有2个强制参数和2个可选参数。
- StringCheck作为字符串: 这是必需的参数。我们需要给出要搜索的字符串表达式。
- StringMatch作为字符串: 此参数也是必需的。我们需要指定要搜索的字符串表达式。
- 尽可能长的开始= -1: 这是一个可选参数。我们指定数字表达式。默认情况下,它取-1,这表示搜索从最后一个字符位置开始。如果我们指定任何正值(例如80),那么它将从字符串的结尾开始搜索(在左边的80个字符中)。
- 比较为VbCompareMethod = vbBinaryCompare尽可能长: 此参数是可选的。
我们可以为此参数指定以下值。
返回值
- INSTRREV 如果函数返回0 字符串检查 长度为零或 字符串匹配 找不到或 '开始' 参数>的长度 字符串匹配.
- 该函数返回 '空值' 如果一个 字符串检查 或者 字符串匹配 是 '空值'.
- 如果 字符串匹配 的长度为零,则函数返回 开始.
- 如果一个 字符串匹配 在字符串检查中找到, 然后该函数返回找到匹配项的位置。
如何使用VBA INSTRREV函数?
您可以在此处下载此VBA INSTRREV Excel模板– VBA INSTRREV Excel模板假设我们有电影名称及其导演的数据。我们要拆分董事姓名。
我们有1201行的数据。如果我们手动执行此任务,则将花费大量时间。
为此,我们将使用VBA代码。步骤如下:
- 我们需要点击 “ Visual Basic” 可用命令 '代码' 分组 “开发人员” Tab或我们可以按 Alt + F11 打开Visual Basic编辑器。
- 我们将插入一个 模块 使用 “插入”菜单.
- 我们将创建一个名为 “ SplittingNames”.
- 我们需要6个变量。一种用于存储单元格值的内容,我们将对其进行操作。第二个用于存储字符串中第一个空格的位置,第三个用于存储字符串中最后一个空格的位置,第四个用于存储最后一个行号,第五个和第六个用于行和列,我们将在相邻单元格中打印这些值。
- 要找出工作表中最后使用的行,我们需要使用以下代码。
此代码将首先选择单元格B1,然后在同一列中选择最后使用的单元格,然后将单元格的行号分配给“ LastRow”变量。
- 现在要操作B列中的所有单元格,我们将运行 “ for”循环.
- 我们将在“ s”变量中逐一存储从第2行到第1201行的B列的单元格值,以对其进行操作。
- 我们需要设置 变量“列” 到3,因为我们需要在C(第3列)中写一个拆分名称,然后再写一个列。
- 如果字符串只有一个单词,则意味着字符串中没有空格,那么我们希望将字符串本身作为输出。为此,我们将使用 “如果和其他声明” 带有星号(表示一个或多个字符),如下所示:
- 如果字符串中有空格,那么我们想分割字符串。为了做到这一点,我们已经使用 仪器 和 INSTRREV 函数都分别找出第一个空间位置和最后一个空间位置。这将帮助我们分别找到字符串中的第一个单词和最后一个单词。
INSTR函数采用以下参数:
参数详细信息
- 开始: 从哪个位置开始。
- 字串1: 我们需要给出要搜索的字符串表达式。
- 字串2: 我们需要指定要搜索的字符串表达式。
与VbCompareMethod相比: 指定比较方法。默认情况下,它是二进制比较。
- 我们需要使用vba 剩下 功能 从字符串中提取左字符。我们已经使用 “ Last Space-1” 以获得最后一个空格之前的左字符。
我们需要使用 RIGHT和LEN功能 从第一个空格后的字符串中提取正确的字符。
宏被写入。现在,我们只需要使用 F5 钥匙。
代码:
Sub SplittingNames()Dim s作为字符串Dim FirstSpace作为Long Dim LastSPace作为Long Dim LastRow作为Long Dim行作为Long Dim列作为Long Sheet1.Range(“ B1”)。Select Selection.End(xlDown).Select LastRow = ActiveCell。行对行= 2到LastRow s = Sheet1.Cells(Row,2).Value列= 3如果s像“ * *”,则FirstSpace = InStr(1,s,“”)LastSPace = InStrRev(s,“”) Sheet1.Cells(Row,Column).Value = Left(s,LastSPace-1)Sheet1.Cells(Row,Column + 1).Value = Right(s,Len(s)-FirstSpace)其他Sheet1.Cells(Row, Column).Value = s如果Next End Sub结束
我们现在有结果。