一、基础概述
1、VBA中的字符串用双引号括起来,例如:"Hello World"。
2、字符串可以通过赋值语句或者函数返回值来进行赋值,例如:msg = "Hello World" 或者 msg = InputBox("请输入信息")。
3、字符串连接符号是&
,例如:msg = "Hello " & "World"。
Sub StringDemo()
Dim msg As String
msg = "Hello"
'使用 & 连接字符串
msg = msg & " World!"
MsgBox msg
'使用函数返回值赋值字符串
msg = InputBox("请输入信息")
MsgBox msg
End Sub
二、字符串的常用操作
1、字符串的长度
VBA中可以使用函数Len()
获取字符串的长度,例如:Len("Hello World") = 11
。
Sub StringDemo()
Dim msg As String
msg = "Hello World"
'获取字符串长度
MsgBox Len(msg)
End Sub
2、字符串的截取
截取字符串可以使用函数Left()
、Mid()
、Right()
,它们分别表示从左边、中间、右边开始截取指定数量的字符。
Sub StringDemo()
Dim msg As String
msg = "Hello World"
'从左边开始截取5个字符
MsgBox Left(msg, 5)
'从第6个字符开始截取5个字符
MsgBox Mid(msg, 6, 5)
'从右边开始截取5个字符
MsgBox Right(msg, 5)
End Sub
3、字符串的替换
替换字符串可以使用函数Replace()
,它可以将一个字符串中的指定子字符串替换成另一个字符串。
Sub StringDemo()
Dim msg As String
msg = "Hello World"
'将 "World" 替换成 "VBA"
MsgBox Replace(msg, "World", "VBA")
End Sub
4、字符串的查找
查找字符串可以使用函数Instr()
,它可以查找一个字符串中第一个出现的指定子字符串的位置。
Sub StringDemo()
Dim msg As String
msg = "Hello World"
'查找字符串的位置
MsgBox InStr(msg, "World")
End Sub
5、字符串的转换
字符串的大小写转换可以使用函数UCase()
、LCase()
,它们分别表示将字符串转换成大写和小写。
Sub StringDemo()
Dim msg As String
msg = "Hello World"
'将字符串转换成大写
MsgBox UCase(msg)
'将字符串转换成小写
MsgBox LCase(msg)
End Sub
三、字符串的格式化输出
VBA中可以使用函数Format()
对字符串进行格式化输出,它支持各种类型的格式化。
常用的格式化类型有:
- 数字格式化:#, ##, ###, 0, 00, 000, 0.00;
- 日期格式化:yyyy, mm, dd, hh, nn, ss;
- 货币格式化:¥#,##0.00。
Sub StringDemo()
Dim msg As String
msg = "Hello World"
'数字格式化
MsgBox Format(12345, "0.00")
'日期格式化
MsgBox Format(Date, "yyyy-mm-dd")
'货币格式化
MsgBox Format(12345, "¥#,##0.00")
End Sub
四、字符串的转换
1、字符串与字符数组之间的转换
可以使用VBA中的函数Split()
将一个字符串按照指定的分隔符号分割成一个字符数组。
例如,可以将 "Hello World" 分割成 { "Hello", "World" }。
Sub StringDemo()
Dim msg As String
msg = "Hello World"
'将字符串按照空格分割成字符数组
Dim arr() As String
arr = Split(msg, " ")
'输出字符数组
Dim i As Integer
For i = 0 To UBound(arr)
MsgBox arr(i)
Next i
End Sub
将一个字符数组合并成一个字符串可以使用VBA中的函数Join()
。
例如,{"Hello", "World"} 可以被合并成 "Hello World"。
Sub StringDemo()
Dim arr(1) As String
arr(0) = "Hello"
arr(1) = "World"
'将字符数组合并成字符串
Dim msg As String
msg = Join(arr, " ")
'输出字符串
MsgBox msg
End Sub
2、字符串与数字之间的转换
字符串和数字之间的转换可以使用VBA中的CStr()
和CInt()
等函数。
Sub StringDemo()
Dim num As Integer
num = 123
'将数字转换成字符串
Dim msg As String
msg = CStr(num)
MsgBox msg
'将字符串转换成数字
MsgBox CInt("123")
End Sub
五、总结
VBA中的字符串是程序中不可或缺的一部分,它可以进行各种常用的操作,例如字符串的连接、截取、替换和查找等。同时,还可以通过格式化输出使字符串具有更好的可读性,并且可以方便地和字符数组、数字等进行转换。