学习Excel技术,关注微信公众号:
excelperfect
在VBA中,InStr函数是一个非常有用的函数,可用于查找某字符串在另一个字符串中第一次出现的位置。
InStr函数的语法如下图1所示:
图1
其中:
1.参数Start,可选,指定搜索的起始位置。如果省略该参数,则会从String1的第一个字符开始查找。
2.参数String1,必需,被搜索的字符串。
3.参数String2,必需,要搜索的字符串。
4.参数Compare,可选,指定比较模式。默认为vbBinaryCompare模式,即二进制比较,还可以指定为vbTextCompare模式(文本比较,不区分大小写)和vbDatabaseCompare模式( 数据库 比较,只适用于Access)。如果指定该参数,就要同时指定参数Start。如果省略该参数,比较模式由Option Compare语句值决定。
简单地说,InStr函数就是查找String2在String1中第一次出现的位置。
InStr函数的返回值有以下几种情形:
1.如果String1长度为0,则返回值0。
2.如果String1为Null,则返回值Null。
3.如果String2长度为0,则返回参数Start的值。
4.如果String2为Null,则返回值Null。
5.如果找不到String2,则返回值0。
6.如果在String1中找到了String2,则返回String2被找到的位置。
7.如果参数Start指定的数值大于String2的长度,,则返回值0。
示例1:获取字符出现的位置
下面的代码返回一个字符在另一个字符中出现的位置:
Sub InstrSample1() Dim str1 As String Dim str2 As String Dim iPos As Long str1 = "我的微信公众号是完美Excel" str2 = "完美Excel"