我在Excel VBA中有以下基本电子邮件代码:
Dim OutAppUser As Object
Dim OutMailUser As Object
Set OutAppUser = CreateObject("Outlook.Application")
Set OutMailUser = OutAppUser.CreateItem(0)
With OutMailUser
.To = Range("Ctl_Req_Email").Value
.CC = ""
.BCC = ""
.Subject = TempFNUser
.ReadReceiptRequested = False
.Body = userEmailText
.Attachments.Add FullTempNameUser
.Send 'Use .Send or .Display
End With
具有此宏的工作簿广泛分发,但电子邮件宏的实际驱动仅由少数人完成,现在电子邮件地址已经发生变化 . 我为“发送邮件后”创建了一个Outlook规则,为新电子邮件地址添加了“CC”,作为从外部重定向电子邮件的方法 . 该规则适用于手动测试电子邮件,但似乎不会对从Excel VBA代码发送的电子邮件执行操作 . 是否需要在VBA代码上编写其他内容以发送电子邮件以允许规则运行?
2 回答
http://www.slipstick.com/outlook/email/choosing-the-folder-to-save-a-sent-message-in/
“VBA不适用于使用其他应用程序中的文件,发送命令或Windows资源管理器中的发送到命令创建的消息 . 发送到命令使用简单MAPI, bypasses Outlook functionality . ”
实际上并没有说规则,但你已经看到规则被绕过 .
如果您确实想使用规则,请让Outlook打开Excel .
为什么不使用新宏创建新的电子表格:
人们会使用旧表填写他们的数据,宏驱动程序将使用此代码来启动电子邮件 .