我想让这段代码正常运行。
我想从收件箱中选择多封电子邮件,并使用模板发送自动回复。
我收到运行时错误:未设置对象变量或With Block变量。
任何帮助将不胜感激。另外我想添加一个msg框,告诉我发送了多少项。
Option Explicit
Sub ReplywithTemplate()
Dim Item As Outlook.MailItem
Dim oRespond As Outlook.MailItem
For Each Item In ActiveExplorer.Selection
' This sends a response back using a template
Set oRespond = Application.CreateItemFromTemplate("C:\Users\Accounting\AppData\Roaming\Microsoft\Templates\scautoreply.oft")
With oRespond
.Recipients.Add Item.SenderEmailAddress
.Subject = Item.Subject
' includes the original message as an attachment
.Attachments.Add Item
' use this for testing, change to .send once you have it working as desired
.Display
End With
On Error Resume Next
Next
Set oRespond = Nothing
End Sub
答案 0 :(得分:0)
我注意到以下几行代码:
For Each oRespond In ActiveExplorer.Selection
' This sends a response back using a template
Set oRespond = Application.CreateItemFromTemplate("C:\Users\Accounting\AppData\Roaming\Microsoft\Templates\scautoreply.oft")
With oRespond
您需要使用新变量从模板创建自动回复电子邮件,因为错过了所选的Outlook项目(替换为新创建的项目)。
因此,基本上您可以从模板创建项目,从选定的Outlook项目添加收件人并调用Send方法。或者,您可以使用Outlook中所选项目的“回复”方法,从模板中复制所需的属性并调用“发送”方法。这取决于你选择哪种方式。
最后,您可能会发现Getting Started with VBA in Outlook 2010文章很有帮助。