附件对象上的另存为会生成错误438-对象不支持此属性或方法

时间:2018-10-03 22:44:27

标签: vba outlook outlook-vba

我正在运行一个经过修改的宏,以对收件箱中的电子邮件执行以下任务。

  1. 从电子邮件中分离附件
  2. 打开新电子邮件以将以前的电子邮件正文准确地模仿给新收件人,而无需添加转发信息和签名等。
  3. 将附件从原始电子邮件附加到新电子邮件
  4. 将新电子邮件发送给新收件人

在隔离附件的步骤中,我试图将其保存为临时位置的数组,然后在完成添加到新电子邮件后杀死附件。

在将附件保存到数组的那一行,我收到

  

运行时错误'438':对象不支持此属性或方法

此段的代码如下:

Set myOriginal = olFolder.Items(itemNum)
Set myForward = Application.CreateItem(olMailItem)
Set myAttachments = myForward.Attachments

For Each olAttachment In myOriginal.Attachments

    If InStr(1, myOriginal.HTMLBody, olAttachment.FileName, vbTextCompare) < 1 Then

        ReDim attArray(0 To 0)
        attArray(0) = tempLoc & "Original Attachment" & olAttachment.FileName
        olAttachment.SaveAs attArray(0)

        With myForward

            'Make sure the attachments are in array format
            If Not IsMissing(attachmentArray) Then

                If IsArray(attachmentArray) Then
                    For i = 0 To UBound(attachmentArray)
                        .Attachments.Add attachmentArray(i)
                    Next i
                End If

            End If

        End With

        Kill attArray(0)

    End If

Next olAttachment

myForward.Subject = myOriginal.Subject

错误在线发生

olAttachment.SaveAs attArray(0)

1 个答案:

答案 0 :(得分:0)

我可以确认附件对象不包含SaveAs方法。

您可以尝试使用SaveAsFile方法。

有关更多信息,请参见以下链接:

Attachment.SaveAsFile Method