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
赠金笔
加载中,请稍候......