【问题标题】:Saving Outlook mail attachment保存 Outlook 邮件附件
【发布时间】:2018-07-12 03:18:32
【问题描述】:

我想保存电子邮件中的 .xlsx 附件。

我可以保存文件,但默认情况下扩展名不是 .xlsx,即使电子邮件有 .xlsx 附件。

即使我将它保存为“.xlsx”OutlookMail.Attachments.Item(1).SaveAsFile path & ".xlsx",文件也无法打开。

Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set Folder = OutlookNamespace.GetDefaultFolder(olFolderInbox).Folders("WeeklyMail")
Dim path As String


path = "G:\" & Format(Date, "DD-MM-YYYY") & "-"
For Each OutlookMail In Folder.Items        
    If OutlookMail.ReceivedTime >= Range("A1").Value Then
       title = OutlookMail.subject
       If InStr(title, "[Hello]") Then
            OutlookMail.Attachments.Item(1).SaveAsFile path
       End If
    End If
Next OutlookMail

【问题讨论】:

    标签: excel vba outlook


    【解决方案1】:

    @Helowxi,您的路径变量似乎根本不包含文件名: 查看 [https://msdn.microsoft.com/de-de/vba/excel-vba/articles/workbook-saveas-method-excel] 将您想要的文件名添加到变量中,例如

    path = "G:\" & Format(Date, "DD-MM-YYYY") & "-MyFileName.xlsx"
    

    试一试。

    【讨论】:

      【解决方案2】:

      您可以使用OutlookMail.Attachments.Item(1).FileName获取附件的文件名和扩展名

      下面的代码将获取文件扩展名并保存。我使用 instrrev 作为对带有两个句点的文件名的预防措施。

      @EarlyBird2 指出丢失的文件名是正确的

      Dim attchFileName as String

      Dim myFileName as String

      Dim FileExt as String

      myFileName = "some file"

      attchFileName = OutlookMail.Attachments.Item(1).FileName

      FileExt = Right(attchFileName, len( attchFileName) - instrrev(attchFileName,"."))

      OutlookMail.Attachments.Item(1).SaveAsFile path & "." & myFileName & FileExt

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-29
        • 1970-01-01
        • 2023-02-02
        • 1970-01-01
        • 2011-01-03
        • 2021-09-22
        • 1970-01-01
        • 2017-05-04
        相关资源
        最近更新 更多