【问题标题】:Outlook attachments - Save with Specific Name / Specific type - VBA codeOutlook 附件 - 使用特定名称/特定类型保存 - VBA 代码
【发布时间】:2015-05-08 21:05:42
【问题描述】:

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

此代码保存我的附件并重命名它。如果电子邮件只有一个附件并且签名中没有图像,则它可以工作。如果电子邮件带有一个 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

【问题讨论】:

    标签: vba outlook attachment


    【解决方案1】:

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

    对于 itm.Attachments 中的每个 objAtt

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

    我建议以逐步方式 (F8) 运行代码,看看在调试器下运行它的代码会发生什么。请参阅Getting Started with VBA in Outlook 2010 了解更多信息。

    【讨论】:

    • 谢谢,我现在一步一步地阅读了几篇完整的文章,并获得了很好的信息,但是我无法产生/找到错误。我想我知道我需要不同的名字,但我仍然不知道该怎么做。请注意,Dateformat 中的代码只是留下了似乎没有影响的代码,没有被利用。我不希望它有一个日期,我需要一个静态名称。 (代码是仅适用于一个供应商电子邮件的规则,所以这很好)问题是一些供应商在签名中有图像。
    猜你喜欢
    • 2022-12-14
    • 1970-01-01
    • 2021-09-14
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多