在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中使用频率非常的高,很多函数都非常的好理解,只要多使用一般都可以掌握。