Vb6查找替换代码

时间:2017-06-21 18:50:46

标签: vba vb6

我想只替换1个字符串,但会发生什么,它会替换所有匹配的字符串。

我从list1(列表框)中选择了Ball并在text1上找到并替换它,它在text1中查找了值,但是其他类似于名称球的字符串也被更改了。

我有一个清单1 我有text1.text多行

list1关键字
地面
游泳
斯诺克

詹姆斯

text1.text
徒步旅行者

巴拉
牛仔裤

正在使用

If Text1.Text = list1.Text Then
Text1 = Replace(Text1.Text, list1.Text, Text9.Text)
end if

我试图在这里做精确的关键字替换,但我没有这样做。

我正在尝试替换Ball ,但它会一起替换所有匹配的关键字

球应该只更换,但巴拉也取代了

1 个答案:

答案 0 :(得分:0)

RegExp非常适合捕捉整个单词,而无需指定任何特定的边界。如果您想使用此功能,请尝试以下操作:

Function ReplaceWholeWord(sText As String, sFind As String, sReplace As String)
  With CreateObject("VBScript.Regexp")
     .MultiLine = True: .Global = True
     .Pattern = "\b" & sFind & "\b"
     ReplaceWholeWord = .Replace(s, sReplace)
  End With
End Function
Sub Test()
  Dim s As String
  s = "hiker " & vbCrLf & "Ball 123" & vbCrLf & "Balla" & vbCrLf & "Ball" & vbCrLf & "foobar"
  Debug.Print ReplaceWholeWord(s, "Ball", "Crystal")
End Sub