Replace函数
描述
返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。
语法
Replace(expression, find, replace[, start[, count[, compare]]])
Replace函数语法有如下命名参数:
部分 描述
expression 必需的。字符串表达式,包含要替换的子字符串。
find 必需的。要搜索到的子字符串。
replace 必需的。用来替换的子字符串。
start 可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始。
count 可选的。子字符串进行替换的次数。如果忽略,缺省值是 –1,它表明进行所有可能的替换。
compare 可选的。数字值,表示判别子字符串时所用的比较方式。关于其值,请参阅“设置值”部分。
设置值
compare参数的设置值如下:
常数 值 描述
vbUseCompareOption –1 使用Option Compare语句的设置值来执行比较。
vbBinaryCompare 0 执行二进制比较。 大小写视为不同,省略此项则默认为0。
vbTextCompare 1 执行文字比较,大小写视为相同。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。
返回值
Replace的返回值如下:
如果 Replace返回值
expression长度为零 零长度字符串("")。
expression为Null 一个错误。
find长度为零 expression的复本。
replace长度为零 expression的复本,其中删除了所有出现的find 的字符串。
start > Len(expression) 长度为零的字符串。
count is 0 expression的复本。
说明
Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。
vba.Replace 共有6个参数,后面有些参数是可以省略不填的
replace(Expression,Find,Replace,Start,Count,CompareMethod)
'Expression:(被搜索的字符串-在哪儿找)
'Find:找什么(将被替换掉的部分)
'Replace:替换成什么 (替换后的内容)
'Start:从第几个字符开始找
'Count:替换多少次
'CompareMethod:对比或匹配方式
以下是示例代码:
Sub Replace函数测试()
Dim strSrc As String
Dim strDest As String
strSrc = "张三张三张三"
'简单使用示例?
strDest = Replace(strSrc, "张", "王")
'把str中的"张"全部替换为"王"
'strDest 会被替换成"王三王三王三"
MsgBox strDest
'从指定字符开始替换?
strDest1 = Replace(strSrc, "张", "王", 3)
'第四个参数说明从第3个字符开始替换,替换结果会舍掉前两个字符。
'strDest会被替换成"王三王三"
MsgBox strDest1
'从指定字符开始,替换几次
strDest2 = Replace(strSrc, "张", "王", 3, 1)
'第五个参数是替换次数,默认是替换全部,设置为1的话,就只替换第一次出现的"张";
'这句代码的意思是从第3个开始的第1个a
'strDest会被替换为"王三张三"
MsgBox strDest2
'二进制替换与文本替换
strSrc = "f1f1f1"
strDest3 = Replace(strSrc, "F", "D", , , vbBinaryCompare)
'最后一个参数为vbBinaryCompare (二进制匹配)时,用二进制对比,这个是区分大小写;结果为"f1f1f1"
strDest = Replace(strSrc, "F", "D", , , vbTextCompare)
'最后一个参数为vbTextCompare(文本匹配)时,用文本方式对比,这个不区分大小写;结果为"D1D1D1"
MsgBox strDest3
End Sub
结果如下: