Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从已发送邮件检索VBA中的Outlook附件_Vba_Email_Excel_Outlook - Fatal编程技术网

从已发送邮件检索VBA中的Outlook附件

从已发送邮件检索VBA中的Outlook附件,vba,email,excel,outlook,Vba,Email,Excel,Outlook,我想做的是,在我工作的一些电子邮件模板上,当我们将某个Excel文件拖放到其中时,它将选择该Excel文件的一部分并将其复制到电子邮件正文中。我唯一的问题是,我到处都找了,找到的所有代码似乎都是针对正在接收而不是编写的电子邮件的,我如何访问: 我正在写的电子邮件中的附件 我正在写的电子邮件的正文 我确信,一旦我可以获得当前电子邮件的附件,我就可以获得我想要的所有其他内容的代码 在提到“只需录制宏并查看outlook如何操作”之前,出于某种原因,我的outlook没有“录制宏”项目,因为这也是我第

我想做的是,在我工作的一些电子邮件模板上,当我们将某个Excel文件拖放到其中时,它将选择该Excel文件的一部分并将其复制到电子邮件正文中。我唯一的问题是,我到处都找了,找到的所有代码似乎都是针对正在接收而不是编写的电子邮件的,我如何访问:

  • 我正在写的电子邮件中的附件
  • 我正在写的电子邮件的正文
  • 我确信,一旦我可以获得当前电子邮件的附件,我就可以获得我想要的所有其他内容的代码

    在提到“只需录制宏并查看outlook如何操作”之前,出于某种原因,我的outlook没有“录制宏”项目,因为这也是我第一次使用它

    如何访问:我正在撰写的电子邮件中的附件 我正在写的电子邮件的正文

    这是一个非常基本的例子。我没有做任何错误处理,但我相信你可以处理它

    假设您正在编写的电子邮件如下所示

    你所需要的就是这个代码

    Sub Sample()
        Dim NewMail As MailItem, oInspector As Inspector
        Set oInspector = Application.ActiveInspector
    
        '~~> Get the current open item
        Set NewMail = oInspector.CurrentItem
    
        With NewMail
            Debug.Print .To
            Debug.Print .subject
            Debug.Print .Body
    
            AttchCount = .Attachments.Count
    
            If AttchCount > 0 Then
                For I = 1 To AttchCount
                    '~~> Print Attachment names
                    Debug.Print .Attachments.Item(I).DisplayName
                Next I
            End If
        End With
    End Sub
    
    输出

    如何访问:我正在撰写的电子邮件中的附件 我正在写的电子邮件的正文

    这是一个非常基本的例子。我没有做任何错误处理,但我相信你可以处理它

    假设您正在编写的电子邮件如下所示

    你所需要的就是这个代码

    Sub Sample()
        Dim NewMail As MailItem, oInspector As Inspector
        Set oInspector = Application.ActiveInspector
    
        '~~> Get the current open item
        Set NewMail = oInspector.CurrentItem
    
        With NewMail
            Debug.Print .To
            Debug.Print .subject
            Debug.Print .Body
    
            AttchCount = .Attachments.Count
    
            If AttchCount > 0 Then
                For I = 1 To AttchCount
                    '~~> Print Attachment names
                    Debug.Print .Attachments.Item(I).DisplayName
                Next I
            End If
        End With
    End Sub
    
    输出


    在提到“只需录制宏并查看outlook如何操作”之前,出于某种原因,我的outlook没有“录制宏”
    您没有录制宏的内容?????这是不能接受的。可能您的Outlook版本不对……:(只是开玩笑)像Powerpoint这样的Outlook没有录制宏按钮;)
    在提到“只需录制宏并查看outlook如何操作”之前,出于某种原因,我的outlook没有“录制宏”
    您没有录制宏的内容?????这是不能接受的。可能您的Outlook版本不对……:(只是开玩笑)像Powerpoint这样的Outlook没有录制宏按钮;)你是救命恩人,谢谢。我当时正试图通过继承权,但运气不佳。很高兴它奏效了。顺便说一句,代码是从VBA Outlook运行的。如果您希望它从VBA Excel运行,则必须相应地声明和创建Outlook对象。现在,我的大问题是试图找出添加新附件时触发的事件到底是什么。还没有弄清楚命名方案。嗯,那太粗鲁了。该死的微软!哇!为什么要责怪微软呢?我们更应该感谢他们给了我们如此重要的应用程序。你不仅可以收发电子邮件,还可以用它做很多事情;)你是救命恩人,谢谢。我当时正试图通过继承权,但运气不佳。很高兴它奏效了。顺便说一句,代码是从VBA Outlook运行的。如果您希望它从VBA Excel运行,则必须相应地声明和创建Outlook对象。现在,我的大问题是试图找出添加新附件时触发的事件到底是什么。还没有弄清楚命名方案。嗯,那太粗鲁了。该死的微软!哇!为什么要责怪微软呢?我们更应该感谢他们给了我们如此重要的应用程序。你不仅可以收发电子邮件,还可以用它做很多事情;)