vba - 解压缩附件 - 运行时错误 '91'

标签 vba outlook

我在另一个网站上找到了这段代码。它应该在 Outlook 文件夹中找到一封电子邮件并解压缩附件。它使用临时位置来执行此操作。

我使用的是 Outlook 2013,我使用的引用资料是:Visual Basic for Application、Microsoft Outlook 15.0 对象库、OLE 自动化、Microsoft Office 15.0 对象库。我当前正在模块中运行此代码。

Option Explicit
Sub Unzip1()
    Dim Inbox As MAPIFolder
    Dim SubFolder As MAPIFolder
    Dim Atchmt As Attachment
    Dim FileName As String
    Dim msg As Outlook.MailItem
    Dim ns As Outlook.NameSpace '
    Dim FSO As Object               'variables for unzipping
    Dim oApp As Object
    Dim FileNameFolder As Variant

    Set ns = GetNamespace("MAPI")
    Set Inbox = ns.GetDefaultFolder(olFolderInbox)
    Set SubFolder = Inbox.Folders("ASE")

    For Each msg In SubFolder.Items
        For Each Atchmt In msg.Attachments
            If (Right(Atchmt.FileName, 3) = "zip") Then
                FileNameFolder = Environ("USERPROFILE") & "Documents\"
                Set oApp = CreateObject("Shell.Application")
                oApp.NameSpace(FileNameFolder).CopyHere oApp.NameSpace(Atchmt.FileName).Items
            End If
        Next
    Next
End Sub

我在这一行收到错误“对象变量或 With block 变量未设置”。

oApp.NameSpace(FileNameFolder).CopyHere oApp.NameSpace(Atchmt.FileName).Items

最佳答案

我必须改变

DIm oAPP 作为对象

将 oApp 调暗为 Shell

使用“Microsoft Shell 控制和自动化”进行早期绑定(bind)。不知道为什么它提示后期绑定(bind)

关于vba - 解压缩附件 - 运行时错误 '91',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30786473/

相关文章:

vba - 是否可以同时将 VBA MsgBox 作为 vbYesNo 和 vbExclamation 类型?

vba - 如何恢复此 VBA 项目? Excel 错误消息 : "Removed Part:/xl/vbaProject.bin part."

c# - 打开Outlook后无法创建带有Outlook Interop的电子邮件

excel - 如何在vba中的字符串中加上双引号?

ms-access - 如何转换成日期格式?

html - Outlook HTML 电子邮件的边框宽度差异

html - 让谷歌字体正确加载到 Outlook 中的 HTML 电子邮件中

c# - 转发 MailItem Outlook Addinn 问题

vba - Outlook VBA - 每半小时运行一次代码

excel - 内置 Excel 函数在 VBA 代码中不起作用 - 我的错误是什么?