相关文章推荐
帅气的山羊  ·  With statement (VBA) ...·  1 月前    · 
至今单身的野马  ·  [算法题] ...·  1 年前    · 
神勇威武的苦咖啡  ·  spring-security - ...·  1 年前    · 
首发于 吉祥编程
Excel VBA 编程开发应用系列 (七)—字符串处理函数

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

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函数的返回值为:如果String1<String2,则返回值为-1;如果String1=String2,则返回值为0;如果String1>String2,则返回值为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编程过程中使用的比较少,如果用到,大家可以自行上网查找相关资料。

发布于 2019-07-31 23:06

文章被以下专栏收录