保存PDF附件的文件名&域名

问题描述 投票:0回答:1

我想运行一个宏做以下步骤:-只保存PDF附件到硬盘驱动器-保存它与一个修订名文件名& 域名.这里是代码,我从开源搜索和混合在一起.任何帮助是感激。

Public Sub Download_Attachments()

    Dim ns As NameSpace
    Dim olFolder_Inbox As Folder
    Dim olMail As MailItem
    Dim olAttachment As Attachment
    Dim strFolderPath As String
    Dim strFileName As String
    Dim strSenderAddress As String
    Dim strSenderDomain As String
    Dim fso As Object


    strFolderPath = "C:\"

    Set ns = GetNamespace("MAPI")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set olFolder_Inbox = Application.ActiveExplorer.CurrentFolder


      Set olMail = Application.ActiveWindow.CurrentItem

'Get sender domain
      strSenderAddress = olMail.SenderEmailAddress
      strSenderDomain = Right(strSenderAddress, Len(strSenderAddress) - InStr(strSenderAddress, "@"))



    For Each olMail In olFolder_Inbox.Items

        If TypeName(olMail) = "MailItem" And olMail.Attachments.Count > 0 Then


           For Each olAttachment In olMail.Attachments

                Select Case UCase(fso.GetExtensionName(olAttachment.FileName))

                    Case "PDF", "pdf"
                        olAttachment.SaveAsFile strFolderPath & strFileName


                    Case Else
                        'skip

                End Select

           Next olAttachment

        End If


    Next olMail

    Set olFolder_Inbox = Nothing
    Set fso = Nothing
    Set ns = Nothing

End Sub
outlook-vba
1个回答
0
投票

下面这行代码检索的是资源管理器窗口中的活动文件夹,而不是收件箱中的。Outlook可以用任何活动文件夹启动,你可以把文件夹名指定到Outlook.exe文件中。要获得默认的文件夹(收件箱),你需要使用的是 NameSpace.GetDefaultFolder 方法,返回一个 Folder 对象,表示当前配置文件的请求类型的默认文件夹;例如,获取当前登录用户的默认日历文件夹。例如,下面的示例代码使用 CurrentFolder 属性,将显示的文件夹更改为用户的默认文件夹。Inbox 文件夹中的所有项目。

Sub ChangeCurrentFolder()  
 Dim myNamespace As Outlook.NameSpace  

 Set myNamespace = Application.GetNamespace("MAPI")  
 Set Application.ActiveExplorer.CurrentFolder = myNamespace.GetDefaultFolder(olFolderInbox) 

End Sub

那么其实并不建议在文件夹中的所有项目上进行迭代。

For Each olMail In olFolder_Inbox.Items

相反,你需要使用 FindFindNextRestrict 方法来获取符合您条件的物品。在下面的文章中阅读更多关于这些方法的内容。

最后,您感兴趣的部分是 保存为文件 的方法 Attachment 类,将附件保存到指定的路径。

olAttachment.SaveAsFile strFolderPath & domainName & strFileName

确保传递一个限定的文件路径作为参数. 我建议在调试器下运行这段代码,看看传递了什么值。

© www.soinside.com 2019 - 2024. All rights reserved.