正在保存Outlook邮件附件



我想保存电子邮件中的.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

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

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

尝试一下。

您可以使用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

最新更新