VBAInStrRev()函数返回搜索到的字符位置-VBA函数学习笔
记(四)
上⼀篇⽂章已经学习了Instr()函数,InStrRev()函数正好与Instr()函数相反,查的⽅向是相反的。Instr()的查⽅向是从左到右,
⽽ InStrRev()函数的⽅向是从右到左。
语法
InStrRev(string1, string2 [,start, [compare]])
参数
● string1 - 必须的参数,要匹配的字符串;
● string2 - 必须的参数,string2在string1中查询,在哪个字符串中查询;
● start - 可选参数。查询的起始位置;
● compare - 可选的参数,有两个值。0 = vbBinaryCompare - 执⾏⼆进制⽐较(默认),1 = vbTextCompare - 执⾏⽂本⽐较;
说明
这⾥要注意⼀下string1和string2的这两个参数,string1表⽰需要被匹配的字符串,⽽string2表⽰的是查询字符串,即string1要在string2中查。这两个参数的顺序和Instr相反,不得不说很坑了。另外start也是,start表⽰查询起始的位置,计数并⾮从右往左的,仍然是从左往右计数。这边start给定的参数,计数是从左往右计数的,但是查询仍然是从右往左的。另外compare参
数,vbBinaryCompare,执⾏⼆进制⽐较,即精确的匹配,区分⼤⼩写的vbTextCompare,执⾏⽂本⽐较,不精确⽐较,⼤⼩写不区分的。
⽰例
Sub InStrRevTest()
Debug.Print InStrRev("ABCDEFGaA", "A") 'output 9
Debug.Print InStrRev("ABCDEFGaA", "A", 8, vbBinaryCompare) 'output 1
Debug.Print InStrRev("ABCDEFGaA", "A", 8, vbTextCompare) 'output 8
End Sub
实例:利⽤InStrRev函数,分离⽂件名和后缀
Sub InStrRevTest()
Dim fileNameStr, fileNameReturn, fileSuffixReturn, stringCheck As String
fileNameStr = "测试数据表.cpp"
fileNameReturn = Mid(fileNameStr, 1, InStrRev(fileNameStr, ".") - 1)
fileSuffixReturn = Mid(fileNameStr, InStrRev(fileNameStr, ".") + 1, Len(fileNameStr))
Debug.Print fileNameReturn
Debug.Print fileSuffixReturn
End Sub
vba自学好学吗
只要给定⽂件名,就可以顺利的分开⽂件名和后缀,⽐较⽅便。平时应该也会⽤到。
另外Instr的⽤法,与这篇的正好相反,可以跳转⼀起查看 → 。

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