【问题标题】:Using outlook VBA to trigger an Excel Macro to read email content使用 Outlook VBA 触发 Excel 宏读取电子邮件内容
【发布时间】:2021-06-24 15:04:18
【问题描述】:

我写了一个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 宏调试打印结果附在下面的屏幕截图中。

提前感谢您的帮助!

【问题讨论】:

标签: excel vba outlook


【解决方案1】:

Outlook 对象模型在处理邮件正文时不提供任何限制。有关 Excel 限制的更多信息,请参阅Excel specifications and limits

Outlook 对象模型提供了三种处理项目主体的主要方式:

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

请参阅Chapter 17: Working with Item Bodies 了解更多信息。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 2017-10-05
    • 2011-12-21
    • 1970-01-01
    相关资源
    最近更新 更多