VBA字符串函数,你想学的都在这里

一、提取字符/字符串、提取字符串长度

1.1 Left函数

left(字符串,长度) :从[字符串]的左边开始返回[长度]个字符

例如: Left(“欢迎你关注我”,3) 则返回 “欢迎你”

1.2 Right函数

right(字符串,长度) : 从[字符串]的右边开始返回[长度]个字符

例如 Right(“欢迎你关注”,3) 则返回 “你关注”

1.3 Mid函数

mid(字符串,从第几个开始,长度) : 在[字符串]中[从第几个开始]取出[长度个字符串]

例如 mid(“欢迎你关注”,1,3) 则返回 “欢迎你”

1.4 LTrim/RTrim/Trim函数

LTrim函数: 删除字符串前面的空格;

RTrim函数: 删除字符串后面的空格;

Trim函数: 删除两头的空格。

例如 : trim(” 欢迎 关注 “) 则返回 “欢迎 关注” ,中间的空格不受任何影响

1.5 Len函数

len(字符串) : 返回[字符串]的长度

例如: len(“欢迎你关注”) 则返回 5

2

创建字符串

2.1 Space函数

space(个数) : 返回[个数]个空格

例如 space(5) 则返回 ”

如下例所示:

Sub CreateString1() Dim MyString’ 返回 5 个空格的字符串。 MyString = Space(5) ‘ 将 5 个空格插入两个字符串中间。 MyString = “Hello” & Space(5) & “World”End Sub

2.2 string函数

string(个数,字符) :返回[个数]个[字符]

例如 : string(3,”小”) 则返回 “小小小”

注意:

① string(3,”你好世界”) 也返回 “你你你”,只有首字符才有效

②字符可以指定为字符串或者是ANSI字符代码

例如,下面使用String函数生成指定长度且只含单一字符的字符串。

Sub test() Dim MyString MyString = String(5, “*”) ‘ 返回 “*****” MyString = String(5, 43) ‘ 返回 “+++++” ’43为ANSI字符代码 MyString = String(10, “ABC”) ‘ 返回 “AAAAAAAAAA”End Sub

3

转换字符串

3.1 asc函数

asc(字符): 返回[字符]的ASCII编码,若有多个字符,则只返回首字符的ascii编码,和Chr()函数是一个可逆的过程

例如 asc(“你”) 则返回-15133 ; asc(“你好世界”) 也返回 -15133

3.2 Chr函数

chr(ASCII编码): 返回[ASCII]编码所代表的字符,和ASC()函数是一个可逆的过程

例如 chr(-12127) 则返回 “小” ;chr(asc(“小”)) 则返回”小”(这里是为了说明asc和chr的可逆性,例用此特性可以加密文本)

3.3 StrConv函数

StrConv函数: 使用StrConv函数来按指定类型转换字符串。

语法: StrConv(string,conversion,LCID)

其中,参数string为要转换的字符串,参数conversion为指定转换的类型,参数LCID为可选参数。

将参数conversion设置为vbUpperCase或1,则将字符串转换成大写;(常用)

将参数设置为vbLowerCase或2,则将字符串转换成小写;(常用)

将参数设置为vbProperCase或3,则将字符串中每个字的开头字母转换成大写;

将参数设置为vbUnicode或64,则根据系统的缺省码页将字符串转换成Unicode;

将参数设置为vbFromUnicode或128,则将字符串由Unicode转换成系统的缺省码页。

下面的例子将句子中每个词语的首字母转换为大写:

Sub testConverseString2() Debug.Print StrConv(“my book is this book.”, vbProperCase)End Sub

3.4 Ucase/Lcase函数

Ucase(字符串): 返回[字符串]的大写形式,只对英文字符有效

例如: ucase(“nihaoSHijie”) 则返回 “NIHAOSHIJIE”

Lcase(字符串): 返回[字符串]的小写形式,只对英文字符有效

例如: lcase(“NIhAOshiJie”) 则返回 “nihaoshijie”

4

查找/替换字符串

4.1 instr函数/ InStrRev函数

instr(从第几个开始,字符串1,字符串2) : 从规定的位置开始查找,返回字符串2在字符串1中的位置

例如: instr(1,”你好世界”,”你”) 则返回 1,instr(2,”你好世界”,”你”),则返回 0 。 0 表示未找到

InStrRev函数:与InStr函数不同的是,从字符串的末尾算起。

4.2 Replace函数

Replace函数:返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。

语法:Replace(expression, find, replace[, start[, count[, compare]]])

Replace函数语法有如下命名参数:

expression 必需的。字符串表达式,包含要替换的子字符串。

find 必需的。要搜索到的子字符串。

replace 必需的。用来替换的子字符串。

start 可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始。

count 可选的。子字符串进行替换的次数。如果忽略,缺省值是 –1,它表明进行所有可能的替换。

compare 可选的。数字值,表示判别子字符串时所用的比较方式。

实例:

Sub tihuan()Str1 = “你好@世界@”Str2 = Replace(Str1, “@”, “”) ‘将str1中的@替换为空,Str2结果为“你好世界”End Sub

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注