【发布时间】:2014-04-07 13:06:02
【问题描述】:
我有一个 Excel 文件,它将用作从邮件中整理表格的工具。一封邮件中只有一张表和一条记录。我需要将所有此类表(来自不同邮件)中的记录整理到一个 Excel 表中。我有以下代码可以做到这一点。此代码在运行时将邮件正文中的整个文本复制到 Excel(因此,该代码仅在邮件具有表且邮件正文中没有其他文本时才有效)。但我只需要将邮件中的表格复制到 Excel。请帮我修改代码来做到这一点。请注意,我不想在 Outlook 中编写任何代码。复制的表格也粘贴为文本。我希望它们以表格格式粘贴。需要修改的部分代码如下所示。
Public Sub ExportToExcel1()
Application.ScreenUpdating = False
'变量声明
Dim i As Integer
Dim ns As Namespace
Dim Inbox As Outlook.MAPIFolder
Dim item As Object
Dim doClip As MSForms.DataObject
Dim d As String
'设置变量的值
i = 2
d = ActiveSheet.Range("subject").Value
Set ns = GetNamespace("MAPI")
Set Inbox = ns.GetDefaultFolder(olFolderInbox)
Set doClip = New MSForms.DataObject
'循环检查邮件和提取数据
For Each item In Inbox.Items
If TypeName(item) = "MailItem" And item.Subject = d Then
doClip.SetText item.Body
doClip.PutInClipboard
ActiveSheet.Cells(1, 1).PasteSpecial "Text"
EndSub
【问题讨论】: