2

我对 VBA 很陌生,但任何帮助都将不胜感激!

问题:

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

C:\用户\用户名\桌面\引号\########\

######### 在电子邮件的主题行中给出,格式为:“标准引用########”。

到目前为止,我已经知道如何自动将文件保存在一个 \ 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
4

1 回答 1

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函数来提高用户的灵活性。
希望这可以帮助。

于 2014-03-30T03:43:35.337 回答