搜索范围查找多个字词然后继续

时间:2017-11-21 13:37:48

标签: excel vba excel-vba

我的编码部分存在问题。我试图为一个术语设置一个宏搜索行1,如果找到则将一个单元格偏移并选择到F列。我的问题是我只能搜索一个术语。如果我想要它来搜索第二个单词,我必须打开VBA窗口并更改单词。我希望它根据Row(“1:1”)中的第一个匹配项搜索任一术语然后偏移。这就是我所拥有的。我还需要它来寻找“Mat”这个词。

Rows("1:1").Select
Dim SrchRng As Range, cel As Range
Set SrchRng = Range("1:1")
For Each cel In SrchRng
   If InStr(1, cel.Value, "Units per Assy") > 0 Then
        cel.Offset(0, -1).Select
   End If
Next cel
Range(ActiveCell.Offset(0, 0), Cells(Selection.Row, 6)).Select
Selection.EntireColumn.Select

3 个答案:

答案 0 :(得分:3)

为什么不添加下面的其他条件?

If InStr(1, cel.Value, "Units per Assy") > 0 Or InStr(1, cel.Value, "Mat") > 0 Then

答案 1 :(得分:0)

很难理解为什么在许多单元格上使用Range.Select()。 无论如何要从单词列表中搜索,您可以采用如下代码。

'Assume you search words are on a hidden sheet called 'Search Strings' from 
'range A1:A5

Option Explicit
Public Sub highlight()
    Dim SrchRng As Range, cel As Range
    Dim searchStringsRange As Range, celSearch As Range
    Set SrchRng = Range("1:1")
    Set searchStringsRange = Sheets("Search Strings").Range("A1:A5")
    'SrchRng.Select
    For Each cel In SrchRng
        For Each celSearch In searchStringsRange
            If InStr(1, cel.Value, celSearch.Value) > 0 Then
                 cel.Offset(0, -1).Select
                 Exit For
            End If
        Next
    Next cel
    'Range(ActiveCell.Offset(0, 0), Cells(Selection.Row, 6)).Select
    'Selection.EntireColumn.Select
End Sub

希望以上有帮助,它将使用偏移仅选择一个单元格。 给我详细说明您要如何突出显示/选择完成

答案 2 :(得分:0)

谢谢大家。在sktneer的回答之后,我需要为声明添加一个退出。现在工作得很好。以下是更新后的代码。

行(" 1:1")选择。 Dim SrchRng作为范围,cel作为范围 设置SrchRng =范围(" 1:1") 每个cel在SrchRng 如果是InStr(1,cel.Value," Mat")> 0或InStr(1,cel.Value,"每个Assy的单位")> 0然后         cel.Offset(0,-1)。选择         退出    万一 下一个cel 范围(ActiveCell.Offset(0,0),Cells(Selection.Row,6))。选择