VBA Outlook运行时错误 - 无法发送消息

时间:2018-03-14 20:26:30

标签: vba outlook runtime-error outlook-vba

下面显示的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

1 个答案:

答案 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。