我有一些Outlook VBA代碼可以創建Word文檔並粘貼用戶之前選擇的部分電子郵件,例如, (一些無關痛癢的部分代碼刪除)使用VBA將HTML文本從Outlook複製到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一樣)。
可能是一個愚蠢的評論,但是當你用olEditorHTML對olEditorWord使用相同的代碼時會發生什麼? – JMK
'I.WordEditor.Application.Selection.Copy'掛起「運行時錯誤91:對象變量或塊變量未設置」,因爲正如在調試器中可以很好地看到的,Inspector的WordEditor對象'是Nothing' – MikeD
和'I.HTMLEditor.Application.Selection.Copy'掛起運行時錯誤438:對象不支持此屬性或方法,因爲HTMLEditor對象沒有應用程序屬性 – MikeD