Excel VBA 编程开发应用系列 (八)—字符串处理函数

论坛 期权论坛 期权     
吉祥编程   2019-7-21 14:07   5752   0
Excel VBA编程会用到很多字符串的处理,如字符串的提取,查找字符串,字符串的转换,字符串比较等,本部分将对字符串的处理函数进行总结系统讲解,通过本章,你可以学习到一般常用的VBA编程字符串处理函数及其用法。

字符串提取函数
Mid函数可以从字符串中提取任何指定的子字符串,返回包含字符串中指定数量的字符的字符串。其语法为:
    Mid(String,Start[,Len])
其中,如果参数String包含Null,则返回Null;如果参数Start超过了String的字符数,则返回零长度字符串(“”);如果参数Len省略或超过了文本的字符数,则返回字符串从Start到最后的所有字符。
Left函数可以从字符串的左边开始提取字符或指定长度的字符串,即返回包含字符串中从左边算起指定数量的字符。其语法为:
Left(String,CharNum)
其中,如果参数String包含Null,则返回Null;如果参数CharNum的值大于或等于String的字符数,则返回整个字符串与Left函数不同的是,Right函数从字符串的右边开始提取字符或指定长度的字符串,即返回包含字符串中从右边起指定数量的字符。其语法为:
    Right(String,CharNum)




字符串查找函数
可使用InStr函数返回一字符串在另一字符串中的位置,因此,也可以使用该函数确定一个字符串中是否包含有另一个字符串。其语法为:
    InStr([Start,]string1,string2[,compare])
其中,参数Start为可选参数,设置查找的起点,如果省略,则从第一个字符的位置开始查找,当指定了参数Compare时,则要指定此参数。参数string1为被查找的字符串,参数string2为要查找的字符串,这两个参数都是必需的。
如果在String1中没有找到String2,返回0;如果找到String2,则返回String2第一个出现的首字符位置(即1到String1的长度);如果String2的长度为零,返回Start。
也可以使用InStrRev函数返回一个字符串在另一个字符串中出现的位置,与InStr函数不同的是此函数从字符串末尾开始查找,此处要注意,虽是从后往前查找,但是返回的值还是从前往后算的。。其语法为:
InStrRev(String1,String2[,[Start[,compare])
参数String1为被查找的字符串,参数String2为要查找的字符串,这两个参数都是必需的。参数Start为可选参数,设置每次查找开始的位置,若忽略则使用-1,表示从上一个字符位置开始查找。参数Compare为可选参数,表示所使用的比较方法,如果忽略则执行二进制比较。


字符串比较函数
StrComp函数返回字符串比较的结果。其语法为:
StrComp(string1,string2[,compare])
其中,参数string1和strng2为必需的参数,可以是任何有效的字符串表达式。
如果StrComp函数的第三个参数值为1,则以文本比较的方式进行字符串比较;如果第三个参数值为0或忽略该参数,则以二进制比较的方式进行字符串比较。注意,文本比较的方式不区分字母大小写,而二进制比较方式则区分大小写。如果第三个参数是NULL,则发生错误。
StrComp函数的返回值为:如果String1String2,则返回值为1;如果String1或String2为Null,则返回值为Null。


去掉字符串的空格的函数
LTrim函数删除字符串前面的空格;
RTrim函数删除字符串后面的空格;
Trim函数删除两头的空格。
需要特别注意的是,这三个函数都不会对字符串中的空格做任何处理。



字符串替换函数
Replace函数返回一个被替换了的字符串,该字符串中指定的子字符串已被替换成另一个子字符串,并且替换指定次数。其语法为:
Replace(expression,find,replace[,start[,count[,compare]]])
其中,参数expression必需,表示所要替换的子字符串;参数find必需,表示要搜索到的子字符串;参数replace必需,表示用来替换的子字符串;参数start表示开始搜索的位置,若忽略,则从1开始;参数count表示进行替换的次数,缺省值是-1,表示进行所有可能的替换;参数compare表示判别子字符串时所用的比较方式,与Filter函数的设置值相同。
如果expression的长度为零,Replace返回零长度字符串(“”);如果expression为Null,则返回错误;如果find的长度为零,则返回expression的副本;如果replace的长度为零,则返回删除了所有出现find的字符串的副本;如果start的值大于expression的长度,则返回长度为零的字符串;如果count为0,则返回expression的副本。
Replace函数返回的字符串是从参数start所指定的位置开始到expression结尾已经进行过替换的字符串。
注意:
(1) 如果没有使用参数count,那么当替换较短字符串时就要注意,防止形成一个不相关的字符。
(2) 如果start值大于1,返回的字符串将从start开始,而不是从原有字符串的第一个字符开始。


求字符串长度的函数
Len():得到字符串的长度。语法Len (string)参数string:string类型变量返回值Long。函数执行成功时返回字符串的长度,发生错误时返回-1。如果任何参数的值为NULL,则Len()函数返回NULL。



字符串大小写转换函数
ucase(字符串) 返回[字符串]的大写形式,只对英文字符有效
lcase(字符串) 返回[字符串]的小写形式,只对英文字符有效
上述讲述了一些常用的字符串处理函数,当然还有很多,如类型转换,Ascii返回等,但在VBA编程过程中使用的比较少,如果用到,大家可以自行上网查找相关资料。

支持 吉祥编程 请右下点 在看,请在右上角点【...】关注 分享!

往期内容回顾:
Excel VBA 编程开发应用系列 (七)—用VBA编写工资计算器
Excel VBA 编程开发应用系列 (六)—Excel 对象访问Excel VBA 编程开发应用系列 (六)—Excel 对象访问
Excel VBA 编程开发应用系列 (五)—循环控制流程
Excel VBA 编程开发应用系列 (四)—条件控制流程
Excel VBA 编程开发应用系列 (三)—控件管理
Excel VBA 编程开发应用系列 (二)
Excel VBA 编程开发应用系列 (一)
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:10
帖子:2
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP