【发布时间】:2020-06-21 04:26:07
【问题描述】:
我正在尝试将电子邮件的附件保存到我的桌面。一个 sub 使用 Item(1) 作为输入调用另一个 sub。到目前为止,我有这个,它在调用 sub saveAttachtoDisk 时出错。它给出了图片上显示的错误。
Sub Call_saveAttachtoDisk()
Dim objSelection As Outlook.Selection
Dim objMsg As Object 'Object
Set objSelection = ActiveExplorer.Selection
Set objMsg = objSelection.Item(1)
saveAttachtoDisk (objMsg)
End Sub
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim i As Integer
i = 0
saveFolder = "C:\Users\peet\Desktop"
For Each objAtt In itm.Attachments
i = i + 1
objAtt.SaveAsFile saveFolder & "\name" & i & ".pdf"
Set objAtt = Nothing
Next
End Sub
【问题讨论】:
-
这不是您正在寻求帮助的错误,但它会在以后引起问题。图像和签名可以是附件。无论原始扩展名如何,您都使用 XLS 扩展名保存每个附件。 XLS 是 Excel 2003 工作簿的扩展。您真的还在使用 Excel 2003 吗?自 2007 年以来,工作簿的正常扩展名是 XLSX 或 XLSM。
-
@TonyDallimore 实际上我正在保存 .pdf 附件。
-
我看到了对您代码的更正。但是,这并没有改变要点:您应该使用原始扩展名保存文件。例如,如果附件是图像,它将具有 PNG 或 BMP 或类似的扩展名。如果您将该扩展名更改为 PDF,错误的程序会尝试打开它。