首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载Outlook项目的Outlook附件

下载Outlook项目的Outlook附件
EN

Stack Overflow用户
提问于 2017-10-12 03:50:27
回答 2查看 894关注 0票数 0

如何自动下载outlook项目的附件?

我尝试使用此vba脚本进行下载,但它不适用于outlook项目。它适用于.txt或任何其他类型的附件。

代码语言:javascript
复制
Public Sub Savisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
sSaveFolder = "D:\userdata\sanakkay\Desktop\"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next
End Sub
EN

回答 2

Stack Overflow用户

发布于 2017-10-12 06:55:19

Outlook项目的命名/主题的文件名中可能包含非法字符。

例如中的冒号字符

任务Name:KM_CEM_GY

至少有两种标准方法可以解决这个问题。

Outlook 2010 VBA How to save message including attachment

代码语言:javascript
复制
Private Sub ReplaceCharsForFileName(sName As String, sChr As String)
    sName = Replace(sName, "'", sChr)
    sName = Replace(sName, "*", sChr)
    sName = Replace(sName, "/", sChr)
    sName = Replace(sName, "\", sChr)
    sName = Replace(sName, ":", sChr)
    sName = Replace(sName, "?", sChr)
    sName = Replace(sName, Chr(34), sChr)
    sName = Replace(sName, "<", sChr)
    sName = Replace(sName, ">", sChr)
    sName = Replace(sName, "|", sChr)
End Sub

VBA dialog boxes automatically answer solution

代码语言:javascript
复制
Function StripIllegalChar(StrInput)
    Dim RegX            As Object

    Set RegX = CreateObject("vbscript.regexp")

    RegX.Pattern = "[\" & Chr(34) & "\!\@\#\$\%\^\&\*\(\)\=\+\|\[\]\{\}\`\'\;\:\<\>\?\/\,]"
    RegX.IgnoreCase = True
    RegX.Global = True

    StripIllegalChar = RegX.Replace(StrInput, "")

ExitFunction:
    Set RegX = Nothing

End Function
票数 1
EN

Stack Overflow用户

发布于 2017-10-24 19:49:32

如果要从Outlook下载附件,请尝试此操作。私有子GetAttachments()

代码语言:javascript
复制
Dim ns As Namespace
Dim Inbox As Outlook.MAPIFolder
Dim Item As Object
Dim Atmt As Outlook.Attachment
Dim FileName As String

Set ns = GetNamespace("MAPI")
Set Inbox = ns.Folders("MailboxName").Folders("Inbox")

If Inbox.Items.Count = 0 Then
    MsgBox "There are no messages in the Inbox.", vbInformation, _
            "Nothing Found"
    Exit Sub
End If

For Each Item In Inbox.Items
    For Each Atmt In Item.Attachments
        If Atmt.Type = 1 And InStr(Atmt, "xlsx") > 0 Then
            FileName = "C:\attachments\" & Atmt.FileName
            Atmt.SaveAsFile FileName
        End If
    Next Atmt
Next Item

End Sub设置对MS Outlook的引用,并记住,"MailboxName“是您的电子邮件地址。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46696397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档