VBA /自动化:在Outlook中发送邮件之前,请先检查Excel文件中的电子邮件和可用性日期

时间:2019-01-17 15:33:27

标签: excel vba automation outlook-vba

社区

我对VBA完全陌生,可以在我的小项目中使用您的帮助,因为我找不到完全想要的东西,只有部分不相关的指南。 (也许我还不知道正确的术语?)

我正在Outlook中寻找宏/自动化,

•当我单击“发送”时,检查在使用用户表单输入数据的Excel文件的指定列中是否存在输入的邮件地址;

•然后检查当前日期是否在所述电子邮件地址旁边输入的开始日期和结束日期之间(分别列);

•满足这两个条件时,将显示一条警告消息,询问我是否仍要发送邮件。

这些是我已经发现的难题的一部分,但是需要帮助:

Click “Send” in Outlook email window

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim xPrompt As String
Dim xOkOrCancel As Integer

On Error Resume Next

在发送之前,请调用Excel文件(不需要显示)到…

Dim ExApp As Excel.Application
 Dim ExWbk As Workbook
 Set ExApp = New Excel.Application
 Set ExWbk = ExApp.Workbooks.Open("C:\Folder\Folder\File.xls")
 ExApp.Visible = True

 ExWbk.Application.Run "Modul1.HideWb"

 ExWbk.Close SaveChanges:=False

在地址列(A列)中查看收件人的电子邮件

Matches “Recipient” field in Outlook email window?
If No, Send email
Still searching for code…

Only found something with “CheckAnd…” but haven’t gotten any farther yet.

如果是,请选中相应电子邮件地址旁边的“发件人”和“直到”日期列(C列)

当前日期等于或晚于“开始”日期且早于或等于“直到”(D列)日期?

如果否,请发送电子邮件

If CDate(xRgDateVal) - Date => 0 And DDate(xRgDateVal) - Date <= 0 Then

如果是,消息提示:

”“名称”(列B)在“从”到“直到”之前不可用。您是否仍要发送电子邮件?”

按钮:

是:发送电子邮件

否:关闭提示,不发送电子邮件,但保持电子邮件打开。

如果否,请发送电子邮件

xPrompt = "<Column B> ist von <Column C> bis <Column D> nicht verfügbar. Möchten Sie diese E-Mail trotzdem senden?"
xYesOrNo = MsgBox(xPrompt, vbYesNo + vbQuestion)
If xYesOrNo <> vbYes Then
    Cancel = True
End If
End Sub

我想为这个项目做更多的事情,但是如果我能做到这一点,我会很兴奋。 期待您的提示,指南,术语和/或!

0 个答案:

没有答案