您的当前位置:首页正文

12,excelvba常用字符串处理函数

2022-09-21 来源:好走旅游网


12,excelvba常用字符串处理函数

处理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 谷歌啦.

因篇幅问题不能全部显示,请点此查看更多更全内容