Vba Outlook无法对此类型的附件执行此操作
我正在尝试保存电子邮件中的附件。我收到了错误信息 Outlook无法对此类型的附件执行此操作 它正在使用Debug.Print outAttachment,试图提取图片(与设备无关的位图)。Vba Outlook无法对此类型的附件执行此操作,vba,outlook,Vba,Outlook,我正在尝试保存电子邮件中的附件。我收到了错误信息 Outlook无法对此类型的附件执行此操作 它正在使用Debug.Print outAttachment,试图提取图片(与设备无关的位图)。 我只需要提取Excel和pdf,但如果这意味着代码有效,我不介意提取图片 Public-Sub-Extract\u-Attachments\u-From\u-Outlook\u-Msg\u-Files() Dim outApp作为对象 将邮件设置为对象 作为对象的附件 将msgFiles设置为字符串,将so
我只需要提取Excel和pdf,但如果这意味着代码有效,我不介意提取图片
Public-Sub-Extract\u-Attachments\u-From\u-Outlook\u-Msg\u-Files()
Dim outApp作为对象
将邮件设置为对象
作为对象的附件
将msgFiles设置为字符串,将sourceFolder设置为字符串,将saveInFolder设置为字符串
将文件名设置为字符串
将文件路径设置为字符串
Application.DisplayAlerts=False
msgFiles=Sheets(“Instructions”).Range(“H1”)和Sheets(“Instructions”).Range(“H2”)和.msg“'文件夹位置和.msg文件的filespec”
调试。打印msgFiles
saveInFolder=Sheets(“Instructions”).Range(“H1”)文件夹,用于保存提取的附件
Debug.Print保存文件夹
如果正确(saveInFolder,1)“\”则saveInFolder=saveInFolder&“\”
sourceFolder=Left(msgFiles,InStrRev(msgFiles,“\”))
调试。打印源文件夹
出错时继续下一步
Set-outApp=GetObject(,“Outlook.Application”)
如果outApp什么都不是,那么
MsgBox“Outlook未打开”
出口接头
如果结束
错误转到0
fileName=Dir(msgFiles)
而文件名为vbNullString
设置outEmail=outApp.Session.OpenSharedItem(sourceFolder&fileName)
对于outEmail.Attachments中的每个outAttachment
outAttachment.SaveAsFile saveInFolder&outAttachment.fileName
下一个
fileName=Dir
温德
端接头
这是一条带有嵌入式OLE对象的RT格式消息,对吗?
Outlook对象模型不允许处理该类型的附件(Attachment.type==olOLE)
如果使用是一个选项,则其.SaveAsFile方法足够智能,可以从存储器中提取BMP、EMF、PDF、Excel等文件数据。类似以下内容(在我的脑海中)应该可以完成这项工作:
set Session = CreateObject("Redemption.RDOSession")
set outEmail= Session.GetMessageFromMsgFile(sourceFolder & fileName)
For Each outAttachment In outEmail.Attachments
outAttachment.SaveAsFile saveInFolder & outAttachment.fileName
Next
它是什么类型的附件?pdf和excel文件!都在同一封邮件上?请检查此处:并搜索
Ishiddenatachment
功能。我没有看到这一点,但显然有些附件是“隐藏的”“导出时需要跳过。使用错误处理如何?如果引发了该特定错误,则下一步继续?谢谢Dmitry。”。我发现ActiveX组件无法在设置的会话行上创建对象。你下载并安装了Redemption吗?我的公司不允许。那时你做不了什么。您可以尝试使用扩展MAPI来提取附件数据,但这需要C++或Delphi。请注意,您不需要“;安装Redemption不需要管理员权限-您可以将dll复制到任何文件夹,并使用regsvr32.exe进行注册;它将很高兴在香港大学安装自己。