如果找不到搜索,则为Excel VBA输出字符串

时间:2017-11-08 19:27:54

标签: excel-vba vba excel

我的代码当前搜索Sheet1并将行复制到Sheet2中(如果它与strSearch中的字符串数组匹配)。如果没有包含strSearch的行,我如何才能使它在Sheet2上输出“No Search Found”?

Dim ws1 As Worksheet, ws2 As Worksheet
Dim firstRowWs1 As Long
Dim lastRowWs1 As Long
Dim lastRowWs2 As Long
Dim searchColumnWs1 As Integer
Dim i As Integer
Dim check As Variant
Dim strSearch As Variant
Set ws1 = Worksheets("Sheet1")


Set ws2 = Worksheets("Sheet2")
With ws2
lastRowWs1 = ws1.UsedRange.Rows.Count
lastRowWs2 = ws2.UsedRange.Rows.Count
firstRowWs1 = 1
searchColumnWs1 = 10
strSearch = Array("John", "Jim")

For i = firstRowWs1 To lastRowWs1
    For Each check In strSearch
        If check = ws1.Cells(i, searchColumnWs1).Value Then
            ws1.Rows(i).Copy (ws2.Rows(lastRowWs2 + 1))
            ws2.Rows(lastRowWs2 + 1).Columns("A:B").Insert xlToRight
            lastRowWs2 = lastRowWs2 + 1
            ws1.Rows(i).Delete shift:=xlUp
            i = i - 1
            Exit For
        End If
    Next check
Next i
End With

1 个答案:

答案 0 :(得分:0)

跟踪您是否找到匹配项,并在循环后添加文本。

例如:

Dim foundMatches as Boolean
foundMatches = False

For i = firstRowWs1 To lastRowWs1
    For Each check In strSearch
        If check = ws1.Cells(i, searchColumnWs1).Value Then
            foundMatches = True
            ... etc
        End If
    Next check
Next i

If Not foundMatches then
  ' print "no rows found" somewhere
end if