【问题标题】:Copy HTML text from Outlook into Word using VBA使用 VBA 将 HTML 文本从 Outlook 复制到 Word
【发布时间】:2020-06-29 17:28:54
【问题描述】:

我有一些 Outlook VBA 代码,用于创建 Word 文档并粘贴用户之前选择的电子邮件部分,例如(删除了一些不相关的代码部分)

Private Sub CreateDoc(M As MailItem)
Dim WApp As Word.Application, WDoc As Word.Document, I As Inspector

    Set I = M.GetInspector

    Set WApp = New Word.Application
    WApp.Visible = True
    Set WDoc = WApp.Documents.Add

    Select Case I.EditorType
    Case olEditorWord
        ' this works like a charm, even if multiple parts selected in MailItem
        I.WordEditor.Application.Selection.Copy
        WApp.Selection.PasteAndFormat wdFormatOriginalFormatting

    Case olEditorHTML
        ' trouble starts here ... I don't get it ... best I came up with is
        WApp.Selection.InsertAfter I.HTMLEditor.Selection.CreateRange.Text

    Case Else
        ' unsupported formats
    End Select

    ' clean up
    Set I = Nothing
    Set WDoc = Nothing
    Set WApp = Nothing
End Sub

适用于 Outlook 2003 和 2010

问题:

我的问题出在olEditorHTML 部分,我只是不知道如何获取选定的文本,包括格式。到目前为止,我能想到的最好的方法是插入纯文本。谁能帮我找到正确的代码,将 HTMLEditor 中的选定文本导入 Word,包括格式(就像您手动执行 select/Ctrl-C/Ctrl-V 一样)。

【问题讨论】:

  • 可能是一个愚蠢的评论,但是当您将相同的代码用于 olEditorWord 和 olEditorHTML 时会发生什么?
  • “I.WordEditor.Application.Selection.Copy”因“运行时错误 91:对象变量或未设置块变量”而挂起,因为在调试器中可以很好地看到, Inspector 的 WordEditor 对象“什么都没有”
  • I.HTMLEditor.Application.Selection.Copy 挂起并出现运行时错误 438:对象不支持此属性或方法,因为 HTMLEditor 对象没有 Application 属性
  • 这清楚了,有点啰嗦,但是您是否尝试过将 word 文档保存为 HTML,然后读取文本并以编程方式将其插入 HTML 电子邮件?
  • nope ...记住 Word Doc 是接收边缘,而我的问题在于传输元素(HTML 格式的邮件项目)...您将其称为“读入”...其中我无法获得包括格式在内的选择

标签: vba outlook


【解决方案1】:

感谢您的这篇文章。你的问题实际上变成了我[解决一个非常棘手的问题]的解决方案。

以下行对我有用,也许它也对你有用[如果你还在寻找解决方案:)

将 I.WordEditor.Application.Selection.Copy 更改为 I.WordEditor.Selection.Copy 即可。

【讨论】:

  • 暂时+1,感谢您查看和回复旧帖;我因为使用​​了一种解决方法,但可能有机会在几周后再次转向这个问题,然后可能会愉快地接受你的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-18
  • 1970-01-01
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
相关资源
最近更新 更多