12, excel vba 经常使用字符串处理函数

处理excel数据 不少时候要和字符串打交道, 好比数组

0,想要知道一个字符串的长度是多少? 数据结构

1, 判断字符串是否是含有你须要的字符函数

2, 截取字符串的某一个部分3d

3, 将字符串里的某个字符进行替换excel

4, 把字符串按某个字符分割出来blog

接下来一一介始这几个函数, 字符串

 

 

0,用 len() 函数得到一个字符串长度string

Public Sub  点点didi12()
    
     my_string = "diandian didi"
     str_len = Len(my_string)
     Debug.Print str_len
 it

End Sub
 class

运行一个,就能够在 当即窗口中看到长度值

 

 

 

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