Private Sub Form_Load() Dim a Dim b a = "安徽" a = a & "合肥长江西路434号" a = a & "--------------------------------------" a = a & "江苏" a = a & " 南京市鼓楼区" a = a & "---------------------------------------------" a = a & "浙江"
b = InStr(1, a, "-") - 1 a = Replace(a, "-", "") a = Left(a, b) & "ab" & Right(a, Len(a) - b) Debug.Print a
End Sub
Sub ReplaceStr() Dim oJs As Object, Str$ Set oJs = CreateObject("ScriptControl"): oJs.Language = "JScript" oJs.eval "function clr(str){return str.replace(/\-+/g,'ab')}" Open App.Path & "\001.txt" For Input As #1 Str = Replace(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf, "↑"): Reset Str = oJs.codeobject.clr(Str)
Open App.Path & "\001.txt" For Output As #1 Print #1, Replace(Str, "↑", vbCrLf): Reset End Sub
你这句有问题,因为你的文本文件中---的个数不一样,你只是将指定个数的替换成了“aaa",多于的没有替换掉,所以剩下了,你使用楼上的方法就行,将所有的“-”替换成“a”,然后取3个"a"即可实现
s = Mid(Replace(s, "-", "ab"), 1, Len("ab"))
Debug.Print a
总结一下我的问题:将某个目录下所有文本文档.txt中的“-----------------------------------------------------------------------”替换为“ab”。我的文本文档内容类似下面:安徽
合肥长江西路434号
-----------------------------------------------------------------------
江苏
南京市鼓楼区
-----------------------------------------------------------------------
浙江
杭州文三路829号
-----------------------------------------------------------------------
广东
广州天河东路33号
-----------------------------------------------------------------------
江西
南昌八一广场
-----------------------------------------------------------------------求解在线等
Dim a
Dim b a = "安徽"
a = a & "合肥长江西路434号"
a = a & "--------------------------------------"
a = a & "江苏"
a = a & " 南京市鼓楼区"
a = a & "---------------------------------------------"
a = a & "浙江"
b = InStr(1, a, "-") - 1
a = Replace(a, "-", "")
a = Left(a, b) & "ab" & Right(a, Len(a) - b)
Debug.Print a
End Sub
Dim oJs As Object, Str$ Set oJs = CreateObject("ScriptControl"): oJs.Language = "JScript"
oJs.eval "function clr(str){return str.replace(/\-+/g,'ab')}" Open App.Path & "\001.txt" For Input As #1
Str = Replace(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf, "↑"): Reset
Str = oJs.codeobject.clr(Str)
Open App.Path & "\001.txt" For Output As #1
Print #1, Replace(Str, "↑", vbCrLf): Reset
End Sub