Outlook附件 - 使用特定名称/特定类型保存 - VBA代码

时间:2015-03-07 07:58:26

标签: vba outlook attachment

主要问题是它只重命名第一个附件,我无法控制电子邮件中的其他项目。

此代码保存我的附件并重命名。它的工作原理是,如果电子邮件只有一个附件而且签名中没有图像。如果电子邮件附带一个Excel文件和一个签名图像,它会将图像重命名为我想要的Excel文件名,然后将Excel文件保留为其原始名称。

如果我还可以在保存中指定特定的扩展名,那将会很棒。

Public Sub saveAttachtoDisk_Vendor(itm As Outlook.MailItem)

Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim fso As Object
Dim oldName

Dim file As String
Dim DateFormat As String
Dim newName As String

Dim enviro As String
saveFolder = "S:\Test\"

Set fso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next

For Each objAtt In itm.Attachments
    file = saveFolder & objAtt.DisplayName
    objAtt.SaveAsFile file

    Set oldName = fso.GetFile(file)
    DateFormat = Format(oldName.DateLastModified, "yyyy-mm-dd ")
    newName = "Vendor.xls"
    oldName.Name = newName

    Set objAtt = Nothing
Next

Set fso = Nothing
End Sub

我正在使用这些代码,但无法让它们工作。

validExtString = ".doc .docx .xls .xlsx .msg .pdf .txt" ' <---- Update as needed
validExtArray = Split(validExtString, " ")

而且这个。

If Right(Atmt.FileName, 3) = "xls" Then
     FileName = "C:\Email Attachments\" & Atmt.FileName
     Atmt.SaveAsFile FileName
     i = i + 1
End If

1 个答案:

答案 0 :(得分:0)

请注意,该文件夹不能包含具有相同名称的文件。您需要为附件使用不同的名称。

  

For each objAtt in itm.Attachments

代码遍历所有附件并将其保存在磁盘上。看起来代码中的错误不允许完成工作。

我建议逐步运行代码(F8),看看在调试器下运行它的代码会发生什么。有关详细信息,请参阅Getting Started with VBA in Outlook 2010