自动发送电子邮件给下一个人

时间:2014-05-23 05:49:25

标签: excel excel-vba vba

我一直在尝试编写代码,但无法解决以下问题:

我有一组使用数据库的人。所以每个人都把他们想要使用它的时间放在例如:

Team member      Time            mail ID
ABC              1 pm - 2 pm     ABC@de.com
XYZ              3 pm - 4 pm     YXV@de.com

我希望如果ABC在2之前完成他的工作,即下午1:30,如果他在服务器上的工作表上更新相同并保存,那么下一个使用数据库的人会收到一封邮件说明他有相同的额外30分钟。

此外,即使ABC按时完成,即在2 XYZ也应该能够提醒轮到他。

另一种情况可能是,如果ABC在excel中扩展他的会话,XYZ会在邮件中得到相应的指示,以便检查和更改他的时间段。

我不希望列表中的每个人都收到电子邮件,只有下一个人才能收到电子邮件。

提前致谢。

SATS

1 个答案:

答案 0 :(得分:0)

1)请添加您目前使用的电子表格,因为其他人可能会为您提供更多指导。

2)以下是在excel中通过vba向某人发送电子邮件的代码段;它使用用户桌面上的Outlook发送电子邮件。

Sub SendEmail(ByVal strTo as string,ByVal strCC as string,ByVal strSubject As String,ByVal strBody As String,可选ByVal strHTMLBody As String ="")

Dim OutApp As Object
Dim OutMail As Object

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

On Error Resume Next
With OutMail
    .To = strTo
    .CC = strCC
    .subject = strSubject
    If strBody <> "" Then
        .body = strBody
    Else
        .HTMLBody = strHTMLBody
    End If
    'You can add a file like this
    '.Attachments.Add ("C:\test.txt")
    '.Send    ' if you want to send immediately
    .Display  ' if you want the user to see the email before sending it manually.

End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

End Sub

3)定义工作流程需要一些额外的VBA编程,这取决于您的电子表格设置方式。

希望这有帮助。