VBInStr函数的功能及用法
返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。
语法
InStr([start, ]string1, string2[, compare])
InStr 函数的语法具有下面的参数:
部分
说明
start
可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。
string1
必要参数。接受搜索的字符串表达式。
string2
必要参数。被搜索的字符串表达式。
Compare
可选参数。指定字符串比较。如果 compare Null,将发生错误。如果省略 compareOption Compare 的设置将决定比较的类型。
设置
 compare 参数设置为:
常数
描述
vbUseCompareOption
-1
使用Option Compare 语句设置执行一个比较。
vbBinaryCompare
0
执行一个二进制比较。
vbTextCompare
1
执行一个按照原文的比较。
vbDatabaseCompare
2
仅适用于Microsoft Access,执行一个基于数据库中信息的比较。
返回值
如果
InStr返回
string1 为零长度
0
string1 Null
Null
string2 为零长度
Start
string2 Null
Null
string2 不到
0
string1 中到string2
到的位置
start > string2
0
说明
InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。
【示例】
    本示例使用 InStr 函数来查某字符串在另一个字符串中首次出现的位置。
    Dim SearchString, SearchChar, MyPos
    SearchString ="XXpXXpXXPXXP" ' 被搜索的字符串。
    SearchChar = "P" ' 要查字符串 "P"
    ' 从第四个字符开始,以文本比较的方式起。返回值为 6(小写 p)。
    ' 小写 p 和大写 P 在文本比较下是一样的。
    MyPos = Instr(4, SearchString, SearchChar, 1)
    ' 从第一个字符开使,以二进制比较的方式起。返回值为 9(大写 P)。
    ' 小写 p 和大写 P 在二进制比较下是不一样的。
    MyPos = Instr(1, SearchString, SearchChar, 0)
    ' 缺省的比对方式为二进制比较(最后一个参数可省略)。
    MyPos = Instr(SearchString, SearchChar) ' 返回 9
    MyPos = Instr(1, SearchString, "W") ' 返回 0
【备注】
    InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。
      函数值类型和函数功能如下表所示。
    字符串函数
    函数名
    函数值类型
    功能
    字符串比较函数实现举例
    Chr$(N)
    String
    求以NASCII码的字符
    Chr(65)=“A”
    Str$(N)
    String
    N转换为字符串,如果N>0,则返回的字符串中包含一个前导空格,暗示有一个正号
    Str$(-12345)=“-12345”
    Str(12345)= “ 12345”
    Len(C)
    Long
    求字符串C中包含的字符个数
    Len(“Abab字符串4")=8
    Ucase$(C)
    String
    将字符串C中的小写英文字母转换成大写英文字母
    Ucase(“abABabc")="ABABABC"
    Lcase$(C)
    String
    将字符串C中的大写英文字母转换成小写英文字母
    Ucase(“abABabc")="abababc"
    Space$(N)
    String
    产生N个空格组成的字符串
    Len(Space(6))=6
    String$(NC)
    String
    产生N个由C指定的第一个字符组成的字符串,C可以是ASCII码数
    String(6”ABC”)=“AAAAAA”
    String(665)=“AAAAAA”
    Left(CN)
    String
    从字符串C的最左边开始,截取N个字符
    Left$(“ABCDEF"3)="ABC”
    Right$(CN)
    String
    从字符串C的最右边开始,截取N个字符
    Right$ (“ABCDEF"3)="DEF”
    Mid$(CN1 [N2 ])
    String
    从字符串CN1指定的起始位置处开始,截取N2个字符
    Mid(“ABCDEF”23)=”BCD”
    Mid(“ABCDEF”2)=”BCDEF”
    Ltrim$(C)
    String
    删除字符串C中的前导空格
    Ltrim(“ ABCD ”)="ABCD ”
    Rtrim$(C)
    String
    删除字符串C中的尾部空格
    Ltrim(“ ABCD ”)=" ABCD”
    Trim$(C)
    String
    删除字符串参数中的前导和尾部空格
    Ltrim(“ ABCD ”)="ABCD”
    StrComp(C1,C2[,N])
    Integer
    比较字符串C1和字符串C2的大小,N是比较类型,取值012
    StrComp(“ABC"”abc"1)=0
    StrComp(“ABC"”abc"0)=-1
    StrComp(“abc "” ABC "0)=1
    InStr([N1,]C1,C2[,N2])
    Integer
    在字符串C1中,从N1开始到N2位置,开始C2,省略N1时从C1头开始,省略N2时到C1尾止。不到时,函数值为0
    InStr(2,”ABCDE”,”C”,4)=3
    InStr(2,”ABCDEF”,”CDE”)=3
    InStr(”ABCDEFGH”,”CDE”)=3
    InStr(”ABCDEFGH”,”XY”)=0
      说明:(1)表中的C表示是字符串表达式,表中的N表示是数值表达式
      (2)对于数值函数Val(C),逗号和美圆符号“$”,都不能被识别;空格、制表符和换行符都将从参数中去掉;当遇到字母E时,将其按单精度或双精度实型浮点数处理。
      (3LenB(C)函数与Len(C)函数功能相近,只不过LenB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:LenB(“ABCabc123")=18LenB(“字符串”)=6
      (4)对于产生字符串函数String$(NC),其中,C参数可以为任何有效的数值表达式或字符串表达式,如果为数值表达式,则表示组成字符串的字符的ASCII码;如果为字符串表达式,则其第一个字符将用于产生字符串。
      (5)对于字符串左截函数Left(C,N),N参数为数值表达式,其值指出函数值中包含多
少个字符,如果其值为0,则函数值是长度为零的字符串(即空串);如果其值大于或等于字符串C中的字符数,则函数值为整个字符串。
      LeftB函数与Left函数功能相近,只不过LeftB函数求的是字符串的字节数,而不是字符串中字符的个数。LeftB(“ABCDE”,6)=”ABC”
      (6) 对于字符串右截取函数Right(CN)N参数为数值表达式,其值指出函数值中包含多少个字符。如果其值为0,则函数值为空串;如果其值大于或等于字符串C中的字符个数,则函数值为整个字符串。
       RightB函数与Right函数功能相近,只不过RightB函数求的是字符串的字节数,而不是字符串中字符的个数。RightB(“ABCDE”,6)=”CDE”
      (7N1是数值表达式,其值表示开始截取字符的起始位置。如果该数值超过字符串C中的字符数,则函数值为空串。N2是数值表达式,其值表示要截取的字符数。如果省略该参数,则函数值将包含字符串C中从起始位置到字符串末尾的所有字符。
      MidB函数与Mid函数功能相近,只不过MidB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:MidB(“ABCDEFG”,5,8)=”CDEF”
      (8)因为将一字符串赋值给一定长字符串变量时,如字符串变量的长度大于字符串的
长度,则用空格填充该字符串变量尾部多余的部分,所以在处理定长字符串变量时,删除空格的LtrimRtrim函数是非常有用的。
      (9)对于字符串比较函数StrComp(C1,C2[,N] )N是指定字符串的比较类型。比较类型可以是012,若比较类型为0,则执行二进制比较,此时英文字母区分大小写;若比较类型为1,则执行文本比较,此时英文字母不区分大小写;若比较类型为2,则是执行基于数据库信息的比较,仅对Microsoft Access起作用。若省略该参数,则默认比较类型为0
      当字符串C1小于字符串C2时,函数值为—1;当字符串C1等于字符串C2时,函数值为0:当字符串C1大于字符串C2时,函数值为1

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。