处理excel数据 很多时候要和字符串打交道, 比如
0,想要知道一个字符串的长度是多少?
1, 判断字符串是不是含有你需要的字符
2, 截取字符串的某一个部分
3, 将字符串里的某个字符进行替换
4, 把字符串按某个字符分割出来
接下来一一介始这几个函数,
0,用 len() 函数获得一个字符串长度
Public Sub 点点didi12()
my_string = "diandian didi"
str_len = Len(my_string)
Debug.Print str_len
End Sub
运行一个,就可以在 立即窗口中看到长度值
1, 使用 instr() 判断是不是含某个字符,如果有,就会返回该字符出现的位置
Public Sub diandiandidi12()
my_string = "diandian didi"
my_exp = "an"
Index = InStr(my_string, my_exp)
If Index > 0 Then
Debug.Print Index
Else
Debug.Print "sorry ,no find you exp char"
End If
End Sub
如果字符串中有你需要的字符, 就会返回该字符第一次出现的位置, 如果没有,就说下sorry.运行结果如下, 你也可以复制该代码,改下 my_exp的值试试看
2 ,使用 left() mid() ,right() 截取字符串.
left是左截取, 从字符串左边开始,截取你需要的字符个数, right则从右边开始. mid的话,需要你输入字符串截取的位置和函数
接下来给大家演示下这三个函数
Public Sub diandiandidi12()
my_string = "start diandian didi end"
start_index = 3
jiequ_len = 5
left_char = Left(my_string, jiequ_len)
Debug.Print "left 5 char: " & left_char
right_char = Right(my_string, jiequ_len)
Debug.Print "right 5 char: " & right_char
mid_char = Mid(my_string, start_index, jiequ_len)
Debug.Print "mid_char 5 char: " & mid_char
End Sub
运行结果如下:
3 ,使用 replace() 把字符串中的某个字符替换成其它字符. 接下来把字符串中的an 替换成love
Public Sub diandiandidi12()
my_string = "start diandian didi end"
find_char = "an"
replace_char = "love"
replace_result = Replace(my_string, find_char, replace_char)
Debug.Print replace_result
End Sub
运行结果:
4 ,使用 split() 把字符串按某个字符分割, 接下来把字符串按 an字符进行分割
Public Sub diandiandidi12()
my_string = "startdiandiandidiend"
split_char = "an"
split_results = Split(my_string, split_char, -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可以看成有三个柜子组成的数组, 如果你想得到里面的某个数据, 可能用 数组名(index) 的方式, 比如你想得到第一个数据 , 就可以用 split_results(0) , 哦, 这里的序号是从0开始的. 0 到1到2...
Public Sub diandiandidi12()
my_string = "startdiandiandidiend"
split_char = "an"
split_results = Split(my_string, split_char, -1)
Debug.Print "the first split result is : " & split_results(0)
End Sub
常用函数的话还有 trim() ,可以把字符串前后的空字符串去掉, 如果你想了解更多函数,就需要靠你自己百度or 谷歌啦.