Excel自动电子邮件

时间:2019-03-07 13:40:21

标签: excel vba excel-formula

我有这个excel,我想分别在完成日期前15天和5天之前发送自动提醒电子邮件。

我用(= C2 + 365)将C2列加了一年,同样从D2列中减去了15天和5天。

enter image description here

任务可以有不同的日期。请告知在Excel中是否可行。

谢谢

2 个答案:

答案 0 :(得分:0)

您不能从已关闭的Excel发送邮件。要么始终打开Excel,要么对每次进行测试的宏(如果now()大于E或F ...

您可以做的是使用

从代码中发送邮件并将其保存在邮箱中,直到打发一天。
.DeferredDeliveryTime = Date

将“日期”作为E和F列的依据。

答案 1 :(得分:0)

您可以按照@Jo Lass的建议安排电子邮件,也可以在Outlook中设置提醒。这是我编写的代码,根据需要进行调整。它将为每个任务添加2条提醒(“要完成的日期”前5天和15天,日期取自E和F单元格)

Sub addReminder()

    Dim objApt As AppointmentItem
    Dim objOL As Outlook.Application
    Dim LastRow As Integer
    Dim d, i

    Set objOL = New Outlook.Application

    LastRow = Cells.Find(what:="*", After:=Range("A1"), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).row
    For i = 2 To LastRow
        For Each d In Array("E", "F")
            With objOL.CreateItem(olAppointmentItem)
                .ReminderSet = True
                .start = CDate(Range(d & i).Value)
                .Subject = "Task '" & Range("B" & i).Value & "' to be completed on " & Range("D" & i).Value
                .ReminderMinutesBeforeStart = 0
                .Save
            End With
        Next
    Next

End Sub