字符串操作

2020-07-28 10:34:04 浏览数 (1)

在Excel中,我们除了需要处理大量的数字,字符串也是经常要处理的。

在VBA其他库对象里,我们已经提到了字符串处理的对象库Strings:

Strings对象库中有许多做好了的字符串处理函数,介绍一些比较常用的:

1、字符截取:

截取指定数目的字符串

代码语言:javascript复制
Sub TestStrings()
    Dim str As String
    
    str = "Strings"
    Debug.Print Strings.Left(str, 3)  '从左边截取3个字符,输出Str
    Debug.Print Strings.Right(str, 3) '从右边截取3个字符,输出ngs
    Debug.Print Strings.Mid(str, 3, 3) '从第3个字符开始截取3个字符,输出rin
End Sub

2、字符转换:

代码语言:javascript复制
Sub TestStrings()
    Dim str As String
    
    str = "Strings"
    Debug.Print Strings.LCase(str) '转换为小写字母,输出strings
    Debug.Print Strings.UCase(str) '转换诶大写字母,输出STRINGS
End Sub

3、数组相关

代码语言:javascript复制
Sub TestStrings()
    Dim arr(3) As String
    
    arr(0) = "St"
    arr(1) = "r"
    arr(2) = "i"
    arr(3) = "ng"
    
    Debug.Print Strings.Join(arr, ",") '把数组每个元素连接起来,输出St,r,i,ng
    
    Dim str As String
    str = "ab、cde、fg"
    
    Dim tmp() As String
    tmp = Strings.Split(str, "、") '将字符按照"、"分开,生成1个一维数组
    Dim i As Long
    For i = 0 To UBound(tmp)
        Debug.Print i, tmp(i)
        '输出
         '0            ab
         ' 1            cde
         '2            fg
    Next
    
    arr(0) = "aStr"
    arr(1) = "bS"
    arr(2) = "cSr"
    arr(3) = "dStr"
    tmp = Strings.Filter(arr, "Str") '筛选数组中包含Str字符串的,生成1个新的一维数组
    For i = 0 To UBound(tmp)
        Debug.Print i, tmp(i)
        '输出
        '0             aStr
        '1             dStr
    Next
    
End Sub

4、其他

Len 返回字符串的长度

InStr 判断某个字符串是否包含在另外1个字符串中

Replace 替换某个字符串为另外1个字符串

Format 格式化数据为字符串,这个和Excel函数Text很像

………………

字符串处理函数在Excel VBA中使用频率非常的高,很多函数都非常的好理解,只要多使用一般都可以掌握。

0 人点赞