我想只替换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 ,但它会一起替换所有匹配的关键字
球应该只更换,但巴拉也取代了
答案 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