【问题标题】:automatically save outlook attachment - error自动保存 Outlook 附件 - 错误
【发布时间】:2020-06-27 17:04:38
【问题描述】:

我在下面的脚本中收到以下错误,我正在尝试设置一个脚本,该脚本将在被 Outlook 规则激活时运行(即在邮件到达后应用此规则;来自 person@email.com;运行脚本)并将所有附件保存到特定文件夹。

运行时错误“91”对象变量未设置块变量

错误是针对 'For Each objAtt In itm.Attachments'

Public Sub script()
    Dim saveFolder As String
    Dim objAtt As Outlook.attachment
    Dim itm As Outlook.MailItem
    Dim dateFormat

    dateFormat = Format(SentOn, "yymmdd ")    
    saveFolder = "C:\temp"
    For Each objAtt In itm.Attachments
        If objAtt.Size > 5200 Then
            objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
            Set objAtt = Nothing
        End If
    Next
End Sub

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    您没有初始化 itm 对象。尝试通过以下方式将其定义为方法的参数:

     Public Sub script(itm as Outlook.MailItem)
    

    【讨论】:

    • itm 已声明,即使在方法中声明为参数也不需要 Dim 关键字。
    • 感谢您的建议。我不是 VBA 开发人员。 itm 对象未分配/初始化以供进一步使用。
    • Eugene 是对的,你需要初始化 itm 变量。没有设置该变量“set itm = ...”的代码行
    • 谢谢大家,这似乎正在工作,将为我节省大量时间!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 2020-10-06
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    相关资源
    最近更新 更多