簡體   English   中英

電子郵件提醒甚至不會觸發(發送)Excel中公式中的值更改

[英]Email Reminder doesnt triggered (to send) even Value Change from Formula in Excel

我是Excel中VB的新手。 我在Excel中制作了一個電子郵件提醒程序,其中一個單元格中的值從公式(計算)更改為。 問題是即使滿足條件,電子郵件提醒也不會彈出。 但是當我手動輸入號碼(滿足條件)時,電子郵件提醒確實彈出了。 如果計算得出的像元值滿足程序條件,請幫助使程序運行。 謝謝! 這是代碼:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim completed As Boolean
    Dim rowCount As Long
    Dim i As Integer
    Dim Objek As String
    Dim SatKer As String
    Dim Hari As String
    Dim AlamatEmail As String
    Dim xMailBody As String
    rowCount = 2
    If Target.Cells.Count > 1 Then Exit Sub
    For i = 1 To 5
        rowCount = rowCount + 1
        Set xRg = Range("O" & CStr(rowCount))
        Objek = ActiveSheet.Range("F" & CStr(rowCount)).Value
        SatKer = ActiveSheet.Range("G" & CStr(rowCount)).Value
        Hari = ActiveSheet.Range("O" & CStr(rowCount)).Value
        AlamatEmail = ActiveSheet.Range("S" & CStr(rowCount)).Value
        If xRg = Target And Target.Value < 4 Then
            Call Mail_small_Text_Outlook(Objek, SatKer, Hari, AlamatEmail)
        End If
    Next i
End Sub
Sub Mail_small_Text_Outlook(Objek As String, SatKer As String, Hari As String, AlamatEmail As String)
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Yth. Bapak Widi " & vbNewLine & vbNewLine & _
                "Laporan Penilaian " & Objek & " milik " & SatKer & " mendekati batas akhir pengumpulan." & vbNewLine & _
                "Laporan tersebut harus disubmit dalam " & Hari & " hari." & vbNewLine & vbNewLine & _
                "Mohon cek status laporan penilaian untuk keterangan laporan lebih detail."
    On Error Resume Next
    With xOutMail
        .To = AlamatEmail
        .cc = ""
        .BCC = ""
        .Subject = "Laporan Penilaian " & Objek & " milik " & SatKer
        .HTMLBody = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

以下代碼應該可以完成您的期望,代碼將遍歷O列,如果計算出的值小於4,則它將顯示電子郵件:

Private Sub Worksheet_Calculate()
    Dim ws As Worksheet: Set ws = Sheets("Sheet1")
    'declare and set your worksheet, amend as required
    LastRow = ws.Cells(ws.Rows.Count, "O").End(xlUp).Row
    'get the last row with data on Column O
    Dim completed As Boolean
    Dim rowCount As Long
    Dim i As Integer
    Dim Objek As String
    Dim SatKer As String
    Dim Hari As String
    Dim AlamatEmail As String
    Dim xMailBody As String

    For i = 3 To LastRow 'loop from row 3 to last on Column O

        Set xRg = Range("O" & i)
        Objek = ws.Range("F" & i).Value
        SatKer = ws.Range("G" & i).Value
        Hari = ws.Range("O" & i).Value
        AlamatEmail = ws.Range("S" & i).Value

        If ws.Cells(i, "O").Value < 4 Then 'if value is less than 4 then send email
            Call Mail_small_Text_Outlook(Objek, SatKer, Hari, AlamatEmail)
        End If

    Next i
End Sub


Sub Mail_small_Text_Outlook(Objek As String, SatKer As String, Hari As String, AlamatEmail As String)
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Yth. Bapak Widi " & vbNewLine & vbNewLine & _
                "Laporan Penilaian " & Objek & " milik " & SatKer & " mendekati batas akhir pengumpulan." & vbNewLine & _
                "Laporan tersebut harus disubmit dalam " & Hari & " hari." & vbNewLine & vbNewLine & _
                "Mohon cek status laporan penilaian untuk keterangan laporan lebih detail."
    On Error Resume Next
    With xOutMail
        .To = AlamatEmail
        .cc = ""
        .BCC = ""
        .Subject = "Laporan Penilaian " & Objek & " milik " & SatKer
        .HTMLBody = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM