【发布时间】:2022-01-14 14:33:51
【问题描述】:
我正在尝试将特定子文件夹中的 Outlook 附件保存到本地路径。
我可以将文件按原样保存到本地路径。
要求是使用 ThisWorkbook 的单元格值作为文件名来保存 xl 附件。
Sub ManualPunchAttachmentsExtract()
Dim OlFolder As Outlook.MAPIFolder
Dim OlMail As Object
Dim OlApp As Outlook.Application
Dim OlItems As Outlook.Items
Dim Get_namespace As Outlook.Namespace
Dim strFolder As String
Dim i As Integer
ThisWorkbook.Activate
Sheets("MP File Save").Activate
Range("H3").Activate
Set OlApp = GetObject(, "Outlook.Application")
If err.Number = 429 Then
Set OlApp = CreateObject("Outlook.Application")
End If
strFolder = InputBox("Please Enter the Folder Path alongwith ' \ ' at the end", Path)
'Set Get_namespace = OlApp.GetNamespace("MAPI")
Set OlFolder = OlApp.GetNamespace("MAPI").Folders("shaikajaz.k@flex.com").Folders("Archive").Folders("Juarez").Folders("Manual Punch")
Set OlItems = OlFolder.Items
'.Restrict("[Unread]=true")
For Each OlMail In OlItems
If OlMail.UnRead = False Then
Else
ThisWorkbook.Activate
Sheets("MP File Save").Activate
ActiveCell.Value = OlMail.Subject
ActiveCell.Offset(0, 1).Value = OlMail.ReceivedTime
If OlMail.attachments.Count > 0 Then
For i = 1 To OlMail.attachments.Count
OlMail.attachments.Item(i).SaveAsFile strFolder & "\" & OlMail.attachments.Item(i).FileName
OlMail.UnRead = False
ThisWorkbook.Activate
ActiveCell.Offset(1, 0).Select
Next i
Else
End If
End If
Next
MsgBox ("Done")
End Sub
【问题讨论】:
-
代码没有问题,但要求是将outlook附件直接保存到本地路径,但文件名使用excel文件中可用的单元格值。我只是无法根据需要使用文件名保存文件。
-
好的。基本上这个想法是将电子邮件的主题行和记录时间保存在宏工作簿的工作表中,并将这两个信息合并以形成一个“文件名”。如果我按原样运行此代码,它会将上述信息保存到宏 WB,并且还将 Outlook 附件保存到给定的本地路径。但是当 Outlook 附件保存到本地路径时,我无法使用“合并文件名”。相反,它保存在显示名称中,而不是合并的名称中。我试图用谷歌搜索这种特殊的方法,但没有成功。任何支持将不胜感激。