【发布时间】: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 格式的邮件项目)...您将其称为“读入”...其中我无法获得包括格式在内的选择