目录
trim()、lcase()、ucase()
使用 len() 函数获得一个字符串长度
使用 left() mid() ,right() 截取字符串
使用 replace() 把字符串中的某个字符替换成其它字符
使用 split() 把字符串按某个字符分割
instr运算符
Like运算符
使用string()进行填充
trim去掉字符串空格,lcase 小写、ucase 大写, 都是直接加字符串
my_string = "diandian didi"
str_len = Len(my_string) '结果为13包含空格
left 是左截取, 从字符串左边开始,截取需要的字符个数
right 则从右边开始,截取需要的字符个数
mid 需要你输入字符串截取的开始位置和长度,一般可以配合instr使用
Replace(目标字符串, 要替换字符, 替换成的字符)
replace_result1 = Replace(range("B18"),"1","哈")
replace_result2 = Replace(“as1df35w1fa352131sdgvasv”,"5","哈")
把字符串按 an字符进行分割
Public Sub diandiandidi12()
my_string = "startdiandiandidiend"
split_char = "an"
split_results = Split(my_string, split_char, -1) '-1返回所有分割字符串
For Each result In split_results
Debug.Print result
Next
End Sub
运行如下:
split_results = Split(my_string, split_char, -1) 这句中, 最后面的 -1 ,表示返回所有的分割结果, 这里看到,返回了三个分割的结果.
这个分割函数执行后,返回的是一个数组, 也就是split_results是一个数组, 数组是一种数据结构, 你可以把这种结构想像成一排柜子,每个柜子都有一个序号, 从0开始进行标号,每个柜子里都可以放一些东西, 如 split_results(0) 为 startdi
返回寻找字符串在另一个字符串(搜索范围)的位置,格式:Instr(搜索起始位置,搜索范围,需搜索的字符串,匹配模式) , 其中中间两个为必须项 ,匹配模式知道两个即可:
0或省缺:区分大小写
1:不区分大小写
注意可以只有前三个参数,但是如果有规定了匹配模式则4个参数都要写完整,即不能只要后三个参数
几个例子:
instr(“ABCBD”,”B”) , 结果为2,在这里第1个参数省略了,那就是代表从头开始查找,第1个B出现在第2位上
instr(3,”ABCBD”,”B”) , 结果为4,第1个参数3代表从第3位的C开始向后找,找到的第1个B是在第4位上
instr(3,”ABCBD”,”b”,0) , 结果是0,第4个参数0代表区分大小写,原字符串中没有小写的b,所以结果是0。
instr(3,”ABCBD”,”b”,1) , 结果是4,第4个参数1代表不区分大小写,从第3个字符往后找到的第1个符合条件的是大写的B,在第4位。
利用instr这个特点我们常来判断原字符串中是否包括某特定字符,如果返回值是0就是不包含,是0以后的数就是包含,这个判定条件也经常用到。
find和search都是工作表自带函数,要在VBA中用前面必须加application,其可以用来在工作表中查找单元格,application.find和application.search
这两个函数也都可以在字符串中查找某个字符,其中find区分大小写,search不区分大小写。
application.Find(“M”,”AMAAM”,3) , 结果是5,在字符串“AMAAM”中从第3个字符向后查找“M”,返回找到的第一个M的位置
application.search(“m”,”AMAAM”,3) , 结果也是5
这两个函数看似和instr相同,但其是工作表函数,局限很大,对其中原字符串的长度是有限制的,用instr就可以了
用于对比字符串
Debug.Print "ABC" Like "ABc" 返回 False
Debug.Print "BA" Like "?A" 返回true,此例判断BA是不是长度为2,且第二个字符为A,?代表一个字符
Debug.Print "Excel精英培训" Like "*cel*" 返回tuue,此例判断字符串中是否包括cel,*代表一串字符
若要比较的?或*并不是通配符,则用[ ]括起来,表示是要对比其本身
Debug.Print "Q?B" Like "Q[?]B" 返回true,此例是要对比?本身,非通配
Debug.Print "QaB" Like "Q?B" 返回true,通配符
Debug.Print "QaB" Like "Q[?]B" 返回false,非通配符
Debug.Print 456 Like "#5#" 返回true
[最小-最大最小2-最小3] 可以设定多个范围,用-连接
Debug.Print "q" Like "[A-Za-z]" 返回true, 判断q是不是字母
Debug.Print "H" Like "[A-GM-Z]" 返回False,判断H是不是在A-G,M-Z区间
Debug.Print "H" Like "[A-MO-RU-V]" 返回true,H在这三个区间内
Debug.Print 8 Like "[2-9]" 返回true,判断8是否在2-9之间
Debug.Print 8 Like "[!2-9]" 返回False, 有 ! 取反
Debug.Print "A" Like "[!C-Z]" 返回true,有!取反
Debug.Print "M" Like "[ABCDEUE]" 返回False,列出区间值
Debug.Print "M" Like "[!ABCDEUE]" 返回true,有!取反
Debug.Print "AEREM" Like "[A-C]*[L-P]" 返回true,判断以A-C开头,以L-P结尾,中间以*为通配符
Debug.Print "A334M" Like "[A-C]###[L-P]" 返回true
Debug.Print "AC" Like "[ABCDEUE][ABCDEUE]" 返回true,判断同时含有A和C
该函数返回重复的字符或字符串。其语法为:
String(number,character) ,两个参数均为必须参数,number指定所返回的字符串的长度;参数character指定字符代码或字符串表达式。
使用String函数生成指定长度且只含单一字符的字符串。
MyString = String(5, "*") , 返回 "*****"
MyString = String(5, 42) , 返回 "*****" 没有“”括起来,十进制42的ASCII为*
MyString = String(10, "ABC") , 返回 "AAAAAAAAAA",注意仅能填充单一字符