基于多个条件的VBA Excel运行宏

基于多个条件的VBA Excel运行宏,excel,vba,outlook,Excel,Vba,Outlook,我正在尝试自动生成错误报告。如果4个条件中的一个为真,我将发送一封包含结果的电子邮件。以下是迄今为止的代码: Sub EmailFRSErrors() Dim SrchRng As Range, cel As Range Set SrchRng = Range("A2:A5000") For Each cel In SrchRng If InStr(1, cel.Value, "22") > 0 Or InStr(1, cel.Value, "26") > 0 Or InStr

我正在尝试自动生成错误报告。如果4个条件中的一个为真,我将发送一封包含结果的电子邮件。以下是迄今为止的代码:

Sub EmailFRSErrors()
Dim SrchRng As Range, cel As Range
Set SrchRng = Range("A2:A5000")

For Each cel In SrchRng
 If InStr(1, cel.Value, "22") > 0 Or InStr(1, cel.Value, "26") > 0 Or InStr (1, cel.Value, "44") > 0 Or InStr(1, cel.Value, "46") > 0 Then
 OpenOutlookEmail
End If
Next
End Sub
我的问题是,如果有两个以上的错误,它会为每个错误运行一次OpenOutlookEmail宏。我希望它运行一次,无论是1个错误还是10个错误。它正在运行的宏将复制该范围,并将所有错误粘贴到outlook中并发送出去。我只需要发送一封包含所有错误的电子邮件


谢谢

像上面的注释一样,您只需将Exit子语句添加到If语句中,如下所示:

Sub EmailFRSErrors()
    Dim SrchRng As Range, cel As Range
    Set SrchRng = Range("A2:A5000")

    For Each cel In SrchRng
        If InStr(1, cel.Value, "22") > 0 Or InStr(1, cel.Value, "26") > 0 Or InStr (1, cel.Value, "44") > 0 Or InStr(1, cel.Value, "46") > 0 Then
            OpenOutlookEmail
            Exit Sub 'This will exit the sub after sending only one email instead of continuing and potentially sending multiple
        End If
    Next
End Sub

在结束前放入出口接头,如果工作正常,谢谢!