2014-04-11 94 views
1

场基本上下面的脚本在Outlook中的规则工作一起。当我收到电子邮件时,它会保存PDF附件。我遇到的问题是我想更改文件名(objAtt.SaveAsFile)。它的文件名称就像是“userid.jobname.JOB22979 ......”。我想用第二个节点(本例中为jobname)保存文件,然后是日期和时间。我相信我可以从对象objAtt.DisplayName得到的文件名,但我不知道该如何拿起刚刚第二个节点中的文件名。拆分在Outlook

Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 
Dim objAtt As Outlook.Attachment 
Dim saveFolder As String 
Dim dateFormat 
    dateFormat = Format(Now, "yyyy-mm-dd H-mm-ss") 


saveFolder = "c:\users\xxxxxx\USER\documents\email\" 
    For Each objAtt In itm.Attachments 
    objAtt.SaveAsFile saveFolder & dateFormat & "print.pdf" 
    Set objAtt = Nothing 
    Next 
End Sub 

回答

0

Split拔出第2个标记;

DisplayName = "userid.jobname.JOB22979.blah" 

job = Split(DisplayName & ".", ".")(1) 

If Len(job) > 0 Then 
    job = job & "_" & Format$(Now, "yyyy-mm-dd H-mm-ss") & "_print.pdf" 
Else 
    '// no match, use original 
    job = DisplayName 
End If 

objAtt.SaveAsFile saveFolder & job 
+0

此代码工作完全!!!!我仍然试图让显示名称= objAtt.DisplayName不知何故,这样我就可以得到正确的作业名称 – user3524421