如何基于主题字符串保存子文件夹中的Outlook附件

时间:2014-03-30 01:31:26

标签: vba outlook save attachment subject

我对VBA很新,但任何帮助都会非常感激!

问题:

我从工作中得到一系列引用,这些引用是电子邮件形式,但包含一个或多个附件文件。我希望它们自动存储在文件夹下,如下所示:

C:\ Users \ username \ Desktop \ Quotes \ ######## \

#########在电子邮件的主题行中给出,格式为:"标准报价########"。

到目前为止,我已经了解了如何自动将文件保存在一个\ Quotes \文件夹中,但我不知道如何从主题中提取数字字符串########电子邮件的标题......

Public Sub saveQuote(itm As Outlook.MailItem)

Dim myItem As MailItem

Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "C:\Users\user\Desktop\Quotes"
     For Each objAtt In itm.Attachments
          objAtt.SaveAsFile saveFolder & "\" & myItem.Subject & objAtt.DisplayName
          Set objAtt = Nothing
     Next

End Sub

1 个答案:

答案 0 :(得分:0)

试试这个,因为我评论过:
如果数字部分固定为8个字符

Dim myqoute

myqoute = Right(itm.Subject, 8)

如果没有,请使用Split

myqoute = Split(itm.Subject, " ")(Ubound(Split(itm.Subject, " ")))

然后在您的文件名中使用它 但是,如果要创建目录(每个qoute号的子文件夹),请使用MkDir

MkDir "C:\Users\" & Environ$("username") & "\Desktop\Qoutes\" & myqoute
objatt.SaveAsFile "C:\Users\ & Environ$("username") & "\Desktop\Qoutes" & _
            myqoute & "\" objatt.DisplayName

我使用Environ功能来提高用户灵活性 希望这会有所帮助。

相关问题