这可能令人困惑,但现在就这样了。
我目前必须打开标题/日期“XXX 20130624”的outlook搜索,然后保存在具有指定名称的驱动器上的“模板文件”中。即Outlook附件主题为“ABC 20130624”,附加的excel文件标记为“ZBA Extra”,然后我将附件在网络上保存为“ABC”
任何帮助都将不胜感激。
答案 0 :(得分:1)
以下是您需要做的一步一步的操作。代码是半伪代码,不会开箱即用。询问任何不清楚的细节。
1.0将正在运行的Outlook实例导入对象
outlook = GetObject( , "Outlook.Application" )
2.0然后访问收件箱(olFolderInbox = 6)文件夹。这必须通过Namespace对象
完成namespace = outlook.GetNameSpace("MAPI")
inboxFolder = namespace.GetDefaultFolder(olFolderInbox)
3.0在此文件夹中,搜索所需的文档。你的要求在那里特别模糊,我会假设任何以硬编码日期结束的主题都可以。我在这里使用DASL语法来执行like
运算符。
filter = ""@SQL=""http://schemas.microsoft.com/mapi/proptag/0x0037001f"" = ' 20130628'
items = inboxFolder.Items.Restrict( filter )
4.0枚举遇到的项目。
For Each item in items
...
Next item
4.1。对于每个项目,存储主题,剥离第一个空格中的任何内容
subject = mailItem.Subject
spaceIndex = InStr( subject, " " )
extractFilename = Left( subject, spaceIndex )
4.2枚举附件并使用名称保存它们。
For Each attachment In Item.Attachments
fileName = "H:\" & exdtractedFilename & ".xlsx"
attachment.SaveAsFile fileName
Next attachment
请注意,如果有多个附件,这将多次覆盖同一文件。您可能想要考虑如何处理这种情况。
答案 1 :(得分:0)
Sub open()
book1 = ActiveWorkbook.Name
file1 = Application.GetOpenFilename("ALL Files (*.all), *.all")
Worksheets("res").Range("K1").Value = file1
Workbooks.OpenText file1, origin:=xlWindows, startrow:=1, DataType:=xlTextFormat
del = ActiveWorkbook.Name
ActiveSheet.Copy before:=Workbooks(book1).Sheets(1)
Workbooks(del).Close False
Sheets(1).Activate
ActiveSheet.Name = "acti"
End Sub