除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www.zhanzhanrufeng.com/cat4/470.html,VBA交流群273624828。
今天做一个程序的时候碰到了这个问题,这节就来谈谈相关的知识。题目是这样的,有这样一个字符串“ABABABAB”,现在我们要把它替换成“1B2B3B4B”,就是依次把A替换成1,2,3,4。直接用replace函数的话所有的A都会替换成同一个,那我们现在就要依次替换其中的每个A,先看下面这组代码:
Sub test1()
s = "ABABABAB"
Do While InStr(s, "A") <> 0
n = n + 1
s = Replace(s, "A", n, , 1)
Loop
MsgBox s
End Sub
Replace(原字符串,要替换的字符串,替换成的内容,开始查找的位置,替换的次数)
Function GetPosition(s, Txt, Optional k = 0) '原串,要找的串,第n次出现
Dim n, p, c
n = InStr(s, Txt)
p = n
c = 1
Do
If c = k Then GetPosition = n: Exit Function
n = InStr(n + 1, s, Txt)
If n = 0 Then
p = 0
Exit Do
End If
c = c + 1
p = p & "," & n
Loop
GetPosition = p
End Function
Sub test()
Dim i, t, s, n
s = "ABABABAB"
i = 1
Do While GetPosition(s, "A", i)
n = GetPosition(s, "A", i)
s = Left(s, n - 1) & Replace(s, "A", i & "A", n, 1)
i = i + 1
'Debug.Print s
Loop
Debug.Print s
End Sub
联系客服