Runtime Error 91- Excel VBA

0

Sou novo no VBA e tenho um problema com o código abaixo, sempre que qualquer célula (diferente de uma na Coluna G) é selecionada, o seguinte erro aparece;

"Erro de tempo de execução 91 - Variável de objeto ou com variação de bloco não definida"

Private Sub Worksheet_Change(ByVal Target As Range)
    Static mailSent As Boolean

    If Not mailSent And Range("G10:G250").Find("YES", MatchCase:=False).Count() > 0 Then
        SendMail
        mailSent = True
    End If
End Sub

Private Sub SendMail()
    With CreateObject("Outlook.Application").createitem(0)
         .To = "helpdesk171@***.com"
            .Subject = "*** Facility Manager Update"
            .Body = "Hi Property Services, " & vbNewLine & vbNewLine & "Update made by Facility Manager which requires your attention." & vbNewLine & vbNewLine & "Click Here <\Internal_Gold Facility Inspection Action Tracker.xlsx>" & vbNewLine & vbNewLine & "Please amend the drop down in Column G accordingly (received/complete)" & vbNewLine & vbNewLine & " Kind regards "
            .Send
     End With
End Sub

Quando eu clico em debugar, ele destaca a linha - "Se não mailSent e Range (" G10: G250 "). Encontre (" YES ", MatchCase: = False) .Count () > 0 Então"

Alguma idéia do que precisa ser alterado para evitar esse erro?

Obrigado antecipadamente :)

    
por P Hope 28.08.2018 / 12:10

1 resposta

0

Eu não tenho certeza sobre o seu booleano, mas você precisa de um teste de "Is Nothing" caso o Find não receba uma correspondência, por exemplo

Private Sub Worksheet_Change(ByVal Target As Range)
    Static mailSent As Boolean
    Dim found As Range
    Set found = Range("G10:G250").Find("YES", MatchCase:=False)
    If found Is Nothing Then Exit Sub
    If Not mailSent And found.Count > 0 Then
        SendMail
        mailSent = True
    End If
End Sub
    
por 28.08.2018 / 14:05