字符串处理是程序设计中最常见的操作在VBA中,既可以调用VBA函数,也可以调用Excel工作表函数来处理字符串,今天小编就来聊一聊关于vba 字符类型 VBA字符串操作?接下来我们就一起去研究一下吧!

vba 字符类型 VBA字符串操作

vba 字符类型 VBA字符串操作

字符串处理是程序设计中最常见的操作。在VBA中,既可以调用VBA函数,也可以调用Excel工作表函数来处理字符串。

1 大小写转换

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

2 字符编码

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

3 字符串比较

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

4 截取子串

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-

,