首页 > 解决方案 > 使用 Outlook VBA 触发 Excel 宏读取电子邮件内容

问题描述

我写了一个 Outlook 宏来调用一个 excel 宏来读取目标电子邮件内容并将其写入 excel 表。

目标电子邮件进来 --> excel 宏运行并在 Outlook 中搜索电子邮件 --> 将内容读入 excel

我遇到的问题是如果在excel上手动触发excel宏可以成功运行。当宏通过outlook VBA触发时,excel宏只能读取第251行的电子邮件内容。谁能帮助我或建议一种调试方法?

在 Outlook 中,我尝试触发 excel 宏,如下所示:

'Debug.Print "Opening excel file"
Set Wb = XlAPP.Workbooks.Open(File)
Set Ws = Wb.Sheets("Read Me")
Ws.Activate

'Debug.Print "Run Macro"
Wb.Application.Wait (Now + TimeValue("0:00:05"))
Wb.Application.Run "Module1.getDataFromOutlook"

在 excel 中,我检查电子邮件内容中有多少行,如下所示:

        'split email content into rows
        Content = item.Body
        'Application.Wait (Now + TimeValue("0:00:05"))
        Debug.Print Len(Content)
        Lines = Split(Content, vbCrLf)

我的 excel 宏调试打印结果附在下面的屏幕截图中。

在此处输入图像描述

在此先感谢您的帮助!

标签: excelvbaoutlook

解决方案


Outlook 对象模型在处理邮件正文时不提供任何限制。有关 Excel 限制的详细信息,请参阅Excel 规范和限制。

Outlook 对象模型提供了三种处理项目正文的主要方法:

  1. 身体
  2. HTML 正文
  3. Word 编辑器。Inspector 类的WordEditor属性返回代表消息正文的 Word 文档实例。

有关详细信息,请参阅第 17 章:使用项目实体

从您在那里发布的代码行中不清楚为什么会有差异。您需要从getDataFromOutlooksub 发布完整代码以获得任何有价值的反馈。


推荐阅读