【问题标题】:Excel Auto emailsExcel 自动电子邮件
【发布时间】:2019-03-08 00:19:41
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 你在问什么?您有一张似乎正在工作的工作表。 Please advise if this is possible in Excel. 在此声明中,this 指的是什么?
  • 这是指“使用 VBA 发送自动电子邮件”
  • 我认为您需要阅读以下内容:stackoverflow.com/help/mcve我们正在努力提供帮助,但我们无法读懂您的想法。

标签: excel vba excel-formula


【解决方案1】:

您无法从已关闭的 Excel 发送邮件。要么你总是打开 Excel,然后你宏一些东西,如果 now() 比 E 或 F 列大的话,每次都会测试......

您可以做的是从您的代码发送邮件并将它们保存在您的邮箱中,直到使用

.DeferredDeliveryTime = Date

基于 E 列和 F 列的“日期”。

【讨论】:

  • 您好 Jo.Jass,谢谢您的回答!我同意我应该从代码发送邮件并将它们保存在邮箱中,直到使用时。可以请分享相同的代码。让excel生成一封电子邮件并保存在outlook中谢谢
【解决方案2】:

您可以按照@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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 2021-07-02
    • 2016-01-29
    • 2016-11-20
    • 2015-09-20
    • 2011-04-02
    • 2014-01-03
    相关资源
    最近更新 更多