今天想用vb中的replace 字符串替換函數,發現了一個問題
那就是替換後的字符串前部分會被截掉
目的把str中的234換成555
str=111234
find=234
str1=555
st=4
BARCODE = Replace(str,find,str1,st,1)
結果BARCODE =555
前半部分被截掉
所以只能用left()函數截取前半部分然後+替換後的字符串
http://hi.baidu.com/cbm666/blog/item/e43676098d5e26ad2fddd420.html
'将 A 替换为 x
'添加 Text1 Text2 Command1 Dim startc%,rcount% Private Sub Form_Load() Text1.Text = "123A456A789aBCDEA" End Sub Private Sub Command1_Click() '********************** 第一种用法 *********************** 无条件全部替换 Text2.Text = Replace(Text1.Text,"A","x") '********************** 第二种用法 *********************** 从第一位开始只替换3次 'rcount = 3 'Text2.Text = Replace(Text1.Text,"x",rcount) '********************** 第三种用法 *********************** 从前面算起第5位开始全部替换 'startc = 5 'Text2.Text = Left(Text1.Text,startc - 1) & Replace(Text1.Text,startc) '********************** 第四种用法 *********************** 从前面算起第6位开始替换2次 'startc = 6 'rcount = 2 'Text2.Text = Left(Text1.Text,startc,rcount) '********************** 第五种用法 *********************** 不分大小写的替换 'Text2.Text = Replace(Text1.Text,"a",vbTextCompare) End Sub '****************************************************************************** Replace函数 描述 返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。 语法 Replace(expression,replacewith[,start[,count[,compare]]]) Replace函数语法有如下几部分: 部分 描述 expression 必需的。字符串表达式,包含要替换的子字符串。 find 必需的。要搜索到的子字符串。 replacewith 必需的。用来替换的子字符串。 start 可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始。 count 可选的。子字符串进行替换的次数。如果忽略,缺省值是 -1,它表明进行所有可能的替换。 compare 可选的。数字值,表示判别子字符串时所用的比较方式。关于其值,请参阅“设置值”部分。 设置值 compare参数的设置值如下: 常数 值 描述 vbUseCompareOption -1 使用Option Compare语句的设置值来执行比较。 vbBinaryCompare 0 执行二进制比较。 vbTextCompare 1 执行文字比较。 vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。 返回值 Replace的返回值如下: 如果 Replace返回值 expression长度为零 零长度字符串("")。 expression为Null 一个错误。 find长度为零 expression的复本。 replacewith长度为零 expression的复本,其中删除了所有出现的find 的字符串。 start > Len(expression) 长度为零的字符串。 count is 0 expression.的复本。 说明 Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。 原文链接:https://www.f2er.com/vb/260604.html