ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2729|回复: 5

[求助] 寻大侠,打开附件中的附件。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-9-21 12:29 | 显示全部楼层 |阅读模式
我这里需要处理16000多封信,每个信中都有一个msg附件,msg文件中,有一个我需要的文件(*.A)文件,如何解决?有没有能够一下解决的方案,利用VBA。一头雾水中。。。。
采用了两步走的方式,把信中的msg文件都提取出来了。第二步接下来如何批量打开文件夹中msg文件,并提取其附件中的文件。

TA的精华主题

TA的得分主题

发表于 2009-9-21 12:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
建议楼主压缩上传Excel问题附件并加以说明或做出模拟结果,以便大家了解和解答。(编辑已发贴即可补充上传附件)

如何发表新话题和上传附件:
http://club.excelhome.net/thread-45649-1-1.html

发帖的技巧:
http://club.excelhome.net/thread-176339-1-1.html

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-9-21 15:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
附件中的文件就是一个嵌套附件的一个outlook文件,像这样的文件,我要处理16000多个,如何批量提取附件中的*.RWD文件。
本人有一定的VBA经验,对word,excel对象模型有很深入的研究,对Outlook对象不是很清楚,目前已经把第一层文件提取出来了,即只包含*.rwd文件附件的*。msg文件。能否通过程序一次性提取到最底层的rwd文件。如果不能,那可不可以在outlook中,批量打开这个msg文件,逐个提取rwd文件。

下面的程序就是我提取第一层的程序代码:
Sub SaveAtt()
   Set objInbox = Session.GetDefaultFolder(olFolderInbox).Items
   
   objInbox_ItemAdd objInbox
   
End Sub

Private Sub objInbox_ItemAdd(ByVal Item As Object)

Dim FileName As String
Dim msg
Dim path
wcount = 0

Dim filefolder
filefolder = "D:\temp\"
j = 1
   
On Error Resume Next

Dim myOlApp As New Outlook.Application
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
Set fso = CreateObject("Scripting.FileSystemObject")

MsgBox myFolder.Items.Count

For i = 1 To myFolder.Items.Count
   
    '====获得每个邮件item=================
    Set mymailitem = myFolder.Items(i)
   
    For Each att In mymailitem.Attachments
        FileName = Right(att.FileName, 3)
        If FileName = "msg" Then
            path = filefolder & j & att.FileName
            att.SaveAsFile path
            
            Debug.Print att.FileName
             j = j + 1
        End If
    Next
   
next
End Sub
谢谢大侠的帮助。

Undelivered Mail Returned to Sender.rar

8.95 KB, 下载次数: 11

TA的精华主题

TA的得分主题

发表于 2009-9-26 22:02 | 显示全部楼层
参考一下这个帖子,最近太忙了,你也是VBA高手,就自己写写,然后跟大家共同分享,好吗?
http://www.outlookcode.com/codedetail.aspx?id=1494

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-9-27 20:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 aaaaabbbbb 于 2009-9-26 22:02 发表
参考一下这个帖子,最近太忙了,你也是VBA高手,就自己写写,然后跟大家共同分享,好吗?
http://www.outlookcode.com/codedetail.aspx?id=1494


谢谢aaaaabbbbb的回复,我正在研究中

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-10-21 18:14 | 显示全部楼层
终于自己完成了,使用2007版中的Namespace.OpenSharedItem完成下一步的工作了!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-27 13:01 , Processed in 0.047864 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表