自动获取邮件中的表格到Excel中

文摘   2024-09-19 19:50   广东  
上次我们学了如何将Excel中的表格区域自动写入邮件并自动发送邮件,如果有需要的可以看看这篇文章:

使用VBA自动将表格区域粘贴到邮件正文并自动发送邮件

今天我们来学学如何将收件箱中的表格数据获取到Excel中。
下面我们来看看今天这个案例。如图,在我的收件箱中有一封邮件,他里面有一个表格,现在我们需要将他获取到Excel中,并将主题作为工作表的名字


在写代码前,由于我们是在Excel中写操作Outlook的代码,所以为了能够方便查看对象的属性,我们此处使用前期绑定。
一、前期绑定

此处添加两个前期绑定,

Microsoft Outlook 16.0 Object Library

Microsoft Word 16.0 Object Library

此处为什么要对Word进行前期绑定引用呢?因为邮件的正文其实是一个Word文档页面。我们可以像写入Word那样进行书写邮件,如果你会Word VBA,那么今天这个问题就很简单啦。

二、代码展示

Sub DownloadTables()    Dim olApp As Outlook.Application    Dim olNamespace As Outlook.Namespace    Dim olFolder As Outlook.MAPIFolder    Dim olMail As Outlook.MailItem    Dim olInspector As Outlook.Inspector    Dim olDocument As Word.Document    Dim tb As Word.Table, arr()    Dim sht As Worksheet    Set olApp = New Outlook.Application    Set olNamespace = olApp.GetNamespace("MAPI")    Set olFolder = olNamespace.GetDefaultFolder(olFolderInbox)    For Each olMail In olFolder.Items        olMail.Display        Set olInspector = olMail.GetInspector        Set olDocument = olInspector.WordEditor        If olDocument.Tables.Count > 0 Then            Set sht = ThisWorkbook.Sheets.Add            sht.Name = Replace(Replace(olMail.Subject, "回复:", ""), "转发:", "")            For Each tb In olDocument.Tables                ReDim arr(1 To tb.Rows.Count, 1 To Columns.Count)                For i = 1 To tb.Rows.Count                    For j = 1 To tb.Columns.Count                        arr(i, j) = tb.Cell(i, j).Range.Text                    Next j                Next i                sht.Range("A65535").End(xlUp).Offset(2, 0).Resize(UBound(arr), UBound(arr, 2)).Value = arr            Next        End If        olMail.Close olDiscard    Next olMailEnd Sub
第10行:创建outlook
第11行:获取命名空间
第12行:获取收件箱
第13行:遍历收件箱1中的邮件
第14行:显示邮件
第15行:获取邮件检查器
第16行:获取word编辑器,下面就和word VBA一样啦
第17行:如果邮件中的表格数量大于0,进入判断
第18行:添加一个工作表
第19行:设置工作表名字,注意工作表名字中不能有特殊符号,所以此处使用了替换
第20行:遍历邮件中的表格
第21行:定义一个和表格一样大小的数组
第22-26行:将表格装入数组
第27行:数组导出到工作表
第30行:关闭邮件
效果展示:

好了,本期教程就到这里啦,走过路过的点个关注分享一下吧,谢谢啦,如果你是一个VBA小白,想要了解该如何开始学习VBA,建议看看以下文章

Excel VBA学习路线知识框架梳理(小白VBA入门必看-建议收藏)

求关注-求星标-求点赞-求看-求分享
最近创建了一个VBA学习交流群,如有需要进群可以添加微信 jaresfzz

Excel应用教程
主要提供Excel vba,函数,图表,数据透视表,pq,Js等教程
 最新文章