数据源aa= "1,2,XX,3"
目标是将XX字符串替换为500
现在采用的方法是
tempArr = split(aa,",")分解成数组.
tempArr(2)=500
再用
ss = join(tempArr,",")
得到的结果为ss = "1,2,500,3"
请问各位大侠还有什么高招.谢谢
目标是将XX字符串替换为500
现在采用的方法是
tempArr = split(aa,",")分解成数组.
tempArr(2)=500
再用
ss = join(tempArr,",")
得到的结果为ss = "1,2,500,3"
请问各位大侠还有什么高招.谢谢
aa=replace(aa,"XX","500")
aa=replace(aa,",XX,",",500,")
条件忘说了,XX是变量,XX也可能是1000或1或0.2
要求是第二逗号与第三个逗号之间的数据进行替换.
replace 肯定不行,用instr还不如用数组.
dim strBeChange as string '即将被替换字符串 如XX
dim strAim as string '目标字符串 如 500aa= "1,2,XX,3" strbechange = "," & "XX" & ","
strAim="," & cstr(变量) & ","aa=replace(aa,strbechange,strAim)
aa=replace(aa,split(aa,",")(2),"500")
dim strBeChange as string '即将被替换字符串 如XX
dim strAim as string '目标字符串 如 500 aa= "1,2,XX,3" strbechange = "," & "XX" & ","
strAim="," & cstr(变量) & "," aa=replace(aa,strbechange,strAim,instr(aa,","),1) replace 函数还有两个参数,指定开始位置和替换次数。可以实现
Dim XX As String : XX = split(aa,",")(2)
aa=replace(aa,XX,"500",InStr(InStr(1, aa, ","), aa, ",")+1,len(XX))
,改为:aa=replace(aa,split(aa,",")(2),"500",InStr(InStr(1, aa, ","), aa, ","),1)
Dim i As Long, p1 As Long, p2 As Long, tmp As Stringaa = "1,2,XX,3"
p1 = 1
Do Until i = 2
p1 = InStr(p1, aa, ",")
If p1 Then
i = i + 1
p1 = p1 + 1
End If
Loopp2 = InStr(p1, aa, ",")
tmp = Trim(Mid(aa, p1, p2 - p1))aa = Replace(aa, tmp, "500")
Debug.Print aa
aa=replace(aa,split(aa,",")(2),"500")相当标准的答案
sulipeng007在14楼给出的才行
使用Replace函数得很小心很小心