Excel 发送电子邮件后设置提醒

Excel 发送电子邮件后设置提醒,excel,vba,outlook,Excel,Vba,Outlook,是否有方法在发送电子邮件后设置提醒 我有创建电子邮件和设置提醒的VBA代码 Sub RendaFixaAplicação() Dim texto As String Dim OutApp As Object Dim OutMail As Object Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) texto = Range("J2").Value & ",in

是否有方法在发送电子邮件后设置提醒

我有创建电子邮件和设置提醒的VBA代码

Sub RendaFixaAplicação()

Dim texto As String

Dim OutApp As Object
Dim OutMail As Object

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

texto = Range("J2").Value & ",insert some text here"

With OutMail
    .Display
    .to = Range("J3").Value
    .CC = Range("J4").Value
    .Subject = "Insert a subject here " & Range("E2").Value
    .HTMLBody = texto & .HTMLBody
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

Call alerta1

End Sub
在代码末尾使用“Call alerta1”进行提醒,并按如下方式编程:

Sub alerta1()
Dim objOutlookApp As Outlook.Application
Dim objTask As Outlook.TaskItem
Dim hora As String
Dim wd As WorksheetFunction
Set wd = Application.WorksheetFunction
Dim diautil As Date
diautil = wd.WorkDay(Date, 1)

If Time > "15:00:00" Then
    hora = diautil & " 14:00:00"
Else
    If Time < "14:00:00" Then
        hora = Date & " 14:00:00"
    Else
        hora = Date & " 14:45:00"
    End If
End If

Set objOutlookApp = CreateObject("Outlook.Application")
Set objTask = objOutlookApp.CreateItem(olTaskItem)
objTask.Subject = "Insert a Subject Here - " & Range("E2").Value
objTask.Display

objTask.body = "Cliente: " & Range("K2").Value & vbNewLine & "Email cliente: " & Range("J3").Value
objTask.ReminderSet = True
objTask.ReminderTime = hora
objTask.DueDate = hora
objTask.Close (olSave)

End Sub
Sub-alerta1()
Dim objOutlookApp作为Outlook.Application
将对象任务设置为Outlook.TaskItem
把霍拉当作绳子
将wd设置为工作表功能
Set wd=Application.WorksheetFunction
Dim diautil作为日期
diautil=wd.WorkDay(日期,1)
如果时间>15:00:00,则
hora=diautil&“14:00:00”
其他的
如果时间<“14:00:00”,则
hora=日期和“14:00:00”
其他的
hora=日期和“14:45:00”
如果结束
如果结束
设置objOutlookApp=CreateObject(“Outlook.Application”)
设置objTask=objOutlookApp.CreateItem(olTaskItem)
objTask.Subject=“在此处插入主题-”&范围(“E2”).值
对象任务显示
objTask.body=“客户:”&Range(“K2”).Value&vbNewLine&“电子邮件客户:”&Range(“J3”).Value
objTask.rementerset=True
objTask.rementertime=hora
objTask.DueDate=hora
对象任务关闭(olSave)
端接头
它设置是否发送电子邮件的提醒

我无法使用。发送电子邮件,因为电子邮件中需要进行一些编辑


是否有办法让Excel等待电子邮件发送,然后运行“alerta1”

首先,不需要在每个方法中创建新的Outlook应用程序实例

理想情况下,您可以将
ItemAdd
事件连接到Outlook中的
senteditems
文件夹。但发送后可能会删除项目,而不会保存到
已发送项目
文件夹。该属性允许设置一个布尔值,如果在发送邮件时未保存邮件副本,则该值为True;如果在“已发送邮件”文件夹中保存副本,则该值为False


因此,我建议处理应用程序类的事件,无论是由用户通过检查器(在检查器关闭之前,但用户单击“发送”按钮之后)发送Microsoft Outlook项目,还是在程序中使用Outlook项目(如MailItem)的发送方法时,都会触发该事件。在事件处理程序中,您可以访问正在发送的项目,并可以为其创建新任务。

签出事件。然后,您可以将警报设置为仅在发送电子邮件时创建。您可以在SentItems文件夹的ItemAdd事件中将提醒代码移动到Outlook中。我建议您可以设置一个特定的主题、文本、用户属性来指示要处理的电子邮件。您可以尝试像这样将所有代码保存在Excel中。