我正在尝试用另一个字符串替换字符串,但问题是该字符串部分与其他字符串匹配。
我正在尝试创建一个搜索另一个电子表格中每一行的函数,如果找到我的搜索短语则返回该行。当使用较长的单词或单词时,脚本可以很好地工作,或者我输入代码短语作为搜索条件。问题是如果字符串部分匹配其他字符串,它会被复制,我会得到很多错误的结果。
我需要让函数停止在结果中查找单词,而是将单词或短语作为整体查看匹配。
到目前为止,这是我的脚本:
Sub Light()
Dim rng1 As Range
Dim fnd1 As String
fnd1 = "Quantity"
Sheets("TEST").Activate
Set rng1 = Sheets("TEST").Cells.Find(fnd1)
If Not rng1 Is Nothing Then
Range(Cells(rng1.Row, rng1.Column), Cells(Rows.Count, rng1.Column).End(xlUp)).Copy _
Sheets("TEMPLATE").Range("A5")
Cells(1, 1).Select
End If
在这里,我遇到了问题,因为部分满足了第二个搜索条件并被复制。
Dim rng2 As Range
Dim fnd2 As String
fnd2 = "Quantity order min"
Sheets("TEST").Activate
Set rng2 = Sheets("TEST").Cells.Find(fnd2)
If Not rng2 Is Nothing Then
Range(Cells(rng2.Row, rng2.Column), Cells(Rows.Count, rng2.Column).End(xlUp)).Copy _
Sheets("TEMPLATE").Range("C5")
Cells(1, 1).Select
End If
答案 0 :(得分:3)
肯定会有一个更好的答案,这甚至可能达不到你想要的结果 - 但是到目前为止还缺少其他任何东西!:
Sub Light()
Dim rng1 As Range
Dim fnd1 As String
Dim rng2 As Range
Dim fnd2 As String
fnd1 = "Quantity"
fnd2 = "Quantity order min"
Sheets("TEST").Activate
Set rng1 = Sheets("TEST").Cells.Find(fnd1)
If Not rng1 Is Nothing Then
If Sheets("TEST").Cells.Find(fnd1, LookIn:=xlValues, lookat:=xlWhole) > 1 Then
Sheets("TEMPLATE").Select
Range("A5").Select
ActiveCell.FormulaR1C1 = fnd1
End If
End If
Sheets("TEST").Activate
Set rng2 = Sheets("TEST").Cells.Find(fnd2)
If Not rng2 Is Nothing Then
If Sheets("TEST").Cells.Find(fnd2, LookIn:=xlValues, lookat:=xlWhole) > 1 Then
Sheets("TEMPLATE").Select
Range("C5").Select
ActiveCell.FormulaR1C1 = fnd2
End If
End If
End Sub