下面显示的VBA代码用于回复包含特定模板的电子邮件。用户通过文件对话框选择要回复的电子邮件,然后代码应打开回复所选电子邮件的新电子邮件。我收到以下错误:
运行时错误'-2147352567(80020009)' 无法发送消息。
当我点击“帮助”按钮时,我会点击此处:https://msdn.microsoft.com/en-us/VBA/Outlook-VBA/articles/olkcategory-backcolor-property-outlook
我无法想象链接与错误有关。我有一种感觉,我在添加回复邮件时做错了。任何帮助将不胜感激。
这是我的代码:
Public Sub btnOK_Click()
Dim myOlApp As Outlook.Application
Dim myItem As Outlook.MailItem
Dim body As String
Set myOlApp = CreateObject("Outlook.Application")
Select Case templateUserForm.templateListBox.Text
Case "CWO"
ReplyTo
Set myItem = myOlApp.CreateItemFromTemplate("C:\example\temp\tempEmail.msg")
myItem.Reply = myOlApp.CreateItemFromTemplate("L:\example\CWO.oft") <--- Error occurs on this line
body = myItem.body
Unload templateUserForm
Unload inputUserForm
myItem.Display
End Select
End Sub
Public Sub ReplyTo()
Dim fso As Object
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Dim fd As Office.FileDialog
Set fd = xlApp.Application.FileDialog(msoFileDialogFilePicker)
fd.AllowMultiSelect = False
Dim selectedItem As Variant
If fd.Show = -1 Then
For Each selectedItem In fd.SelectedItems
Set fso = VBA.CreateObject("Scripting.FileSystemObject")
Call fso.CopyFile(fd.SelectedItems.Item(1), "C:\example\temp\tempEmail.msg")
Next
End If
End Sub
答案 0 :(得分:0)
通常你会创建一个这样的回复对象:
Set myReply = myItem.Reply
从一个经常开始:
Dim myReply as Outlook.MailItem
Set myReply = myOlApp.CreateItemFromTemplate("L:\example\CWO.oft")
myReply.Display
现在没有错误让myReply可以操作。
看起来你想要这个。
Set myItem = myOlApp.CreateItemFromTemplate("C:\example\temp\tempEmail.msg")
myReply = myOlApp.CreateItemFromTemplate("L:\example\CWO.oft")
myReply.body = myItem.body
Unload templateUserForm
Unload inputUserForm
myReply.Display
使结果看起来更像是回复:
myReply.body = myReply.body & vbcr & myItem.reply.body
根据您的模板,您可能需要HTMLbody而非body。