加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

VBA学习笔记之Text(九)——字符串查找定位

(2012-10-29 02:28:16)
标签:

excel

文本拆分

文本定位

instr函数

instrrev函数

分类: VBA
 
Instr(start,string1,string2,Compare)
  • start:可选参数,查找的起始位置
  • string1:必须参数,接受搜索的字符串表达式
  • string2:必须参数,被搜索的字符串表达式
  • Compare:可选参数,指定比较的规则。如果Compare是NULL,将发生错误。如果省略Compare,Option Compare的设置将决定比较的类型。
    • vbBinaryCompare:执行一个二进制比较(区分大小写)
    • vbTextCompare:执行一个按照原文的比较(不区分大小写)
   

演示代码 

    Sub StringInsrDemo()
          Dim myStr As String
          myStr = "ThisisatestaboutStringFunction."
   
          Debug.Print InStr(1, myStr, "S", vbBinaryCompare)
          Debug.Print InStr(1, myStr, "s", vbTextCompare)
     End Sub
返回结果: 17  4


注:
  • 如果string1中没有找到string2,返回0;
  • 如果找到string2,则返回string2第一个出现的首字符位置(即1到string1的长度);
  • 如果string2的长度为0,返回Start。

InStrRev函数

      不同于InStr函数,其查找是从末尾算起的。其语法为:

InStrRev(string1,string2 [,[Start ][,compare])


      注:Start为可选参数,默认每次查找为开始位置;参数compare可选,默认对比方式为vbBinaryCompare

 

【应用】InStr和InStrRev两个函数主要应用于对文本拆分点的查找。下面代码给出了对网页源代码中的某元文件的数据进行提取:

 演示代码:

Sub StringInsrDemo1()
    Dim Con As String
    Dim myStr(3) As String
    myStr(0) = ""
    myStr(1) = ""
    myStr(2) = ""
    myStr(3) = ""
    Dim i As Integer, j As Integer, m As Integer
    For i = 0 To 3
        j = InStr(1, myStr(i), "content", vbBinaryCompare)
        Con = Right(myStr(i), Len(myStr(i)) - j - 8)
        m = InStr(Con, """")
        Con = Left(Con, m)
        Debug.Print Con
    Next
End Sub

运行结果:

text/html; charset=utf-8"
no-cache"
zh-CN"
IE=EmulateIE7"

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有