字符串处理是程序设计中最常见的操作。在VBA中,既可以调用VBA函数,也可以调用Excel工作表函数来处理字符串。 Sub 大小写字母转换() Dim str1, strLower, strUpper str1 = "Hello Excel 2013 VBA" ' 要输送的字符串 strLower = LCase(str1) ' 返回" hello excel 2013 vba" strUpper = UCase(str1) ' 返回" HELLO EXCEL 2013 VBA" Debug.Print strLower Debug.Print strUpper End Sub Sub 字符转换() Dim str1, strLower, strUpper, strProper str1 = "Hello Excel 2013 VBA" ' 要输送的字符串 strLower = StrConv(str1, vbLowerCase) ' 返回" hello excel 2013 vba" strUpper = StrConv(str1, vbUpperCase) ' 返回" HELLO EXCEL 2013 VBA " strProper = StrConv(str1, vbProperCase) ' 返回" Hello excel 2013 vba " Debug.Print strLower Debug.Print strUpper Debug.Print strProper End Sub Sub 查询字符编码() Debug.Print "字符A的编码:" & Asc("A") ' 返回 65 Debug.Print "字符a的编码:" & Asc("a") ' 返回 97 Debug.Print "字符串Excel的编码:" & Asc("Excel") ' 返回 69 End Sub Sub 生成字符() Debug.Print "编码65对应的字母:" & Chr(65) ' 返回 A Debug.Print "编码97对应的字母:" & Chr(97) ' 返回 a Debug.Print "编码69对应的字母:" & Chr(69) ' 返回 E Debug.Print "编码37对应的字母:" & Chr(37) ' 返回 % End Sub Sub 使用like比较字符串() Debug.Print """aBBBa"" Like ""a*a""的结果为:"; "aBBBa" Like "a*a" ' 返回 True" Debug.Print """F"" Like ""[A-Z]""的结果为:"; "F" Like "[A-Z]" ' 返回 True Debug.Print """F"" Like ""[!A-Z]""的结果为:"; "F" Like "[!A-Z]" ' 返回 False Debug.Print """a2a"" Like ""a#a""的结果为:"; "a2a" Like "a#a" ' 返回 True Debug.Print """aM5b"" Like ""a[L-P]#[!c-e]""的结果为:"; "aM5b" Like "a[L-P]#[!c-e]" ' 返回 True Debug.Print """BAT123khg"" Like ""B?T*""的结果为:"; "BAT123khg" Like "B?T*" ' 返回 True Debug.Print """CAT123khg"" Like ""B?T*""的结果为:"; "CAT123khg" Like "B?T*" ' 返回 False End Sub 运行结果: "aBBBa" Like "a*a"的结果为:True "F" Like "[A-Z]"的结果为:True "F" Like "[!A-Z]"的结果为:False "a2a" Like "a#a"的结果为:True "aM5b" Like "a[L-P]#[!c-e]"的结果为:True "BAT123khg" Like "B?T*"的结果为:True "CAT123khg" Like "B?T*"的结果为:False Sub 使用StrComp比较字符串() Dim str1, str2, MyComp str1 = "ABCD" str2 = "abcd" Debug.Print StrComp(str1, str2, 1) ' 返回 0 Debug.Print StrComp(str1, str2, 0) ' 返回 -1 Debug.Print StrComp(str2, str1) ' 返回 1 End Sub Sub 取左侧子串() Dim str1 As String str1 = "Hello Excel 2013 VBA" ' 定义字符串 Debug.Print Left(str1, 1) ' 返回"A" Debug.Print Left(str1, 7) ' 返回"Hello E" Debug.Print Left(str1, 30) ' 返回"Hello Excel 2013 VBA" End Sub Sub 取右侧子串() Dim str1 As String str1 = "Hello Excel 2013 VBA" ' 定义字符串 Debug.Print Right(str1, 1) ' 返回"A" Debug.Print Right(str1, 7) ' 返回"010 VBA " Debug.Print Right(str1, 30) ' 返回"Hello Excel 2010 VBA" End Sub Sub 获取部分子串() Dim str1 As String str1 = "Hello Excel 2013 VBA" ' 定义字符串 Debug.Print Mid(str1, 1, 5) ' 返回"Hello" Debug.Print Mid(str1, 7, 5) ' 返回"Excel" Debug.Print Mid(str1, 7) ' 返回"Excel 2013 VBA" End Sub Sub 删除字符串两侧空格() Dim str1 As String, str2 As String str2 = "end" '用来定位属部空格的位置 str1 = " Hello Excel 2013 VBA " ' 定义字符串(首尾各有两个空格) Debug.Print "123456789012345678901234567890" '显示坐标 Debug.Print Trim(str1); str2 Debug.Print LTrim(str1); str2 Debug.Print RTrim(str1); str2 End Sub Sub 搜索子串位置() Dim str1 As String str1 = "Hello Excel 2013 VBA" Debug.Print InStr(str1, "e") Debug.Print InStr(3, str1, "e") Debug.Print InStr(3, str1, "e", vbTextCompare) End Sub -End-1 大小写转换
2 字符编码
3 字符串比较
4 截取子串