Vba 如何将MS Word格式的内容插入Outlook邮件? 问题

Vba 如何将MS Word格式的内容插入Outlook邮件? 问题,vba,outlook,ms-word,Vba,Outlook,Ms Word,此代码使用MS Word发送邮件 邮件正文与Word内容相同,但邮件正文未格式化 如何将格式化的Word文档内容插入邮件正文 Sub SendDocumentInMail() Dim bStarted As Boolean Dim oOutlookApp As Object Dim oItem As Object On Error Resume Next 'Get Outlook if it's running Set oOutlookApp = GetObject(, "Out

此代码使用MS Word发送邮件

邮件正文与Word内容相同,但邮件正文未格式化

如何将格式化的Word文档内容插入邮件正文

Sub SendDocumentInMail()

Dim bStarted As Boolean
Dim oOutlookApp As Object
Dim oItem As Object

On Error Resume Next

'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
    'Outlook wasn't running, start it from code
    Set oOutlookApp = CreateObject("Outlook.Application")
    bStarted = True
End If

'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)

With oItem
    'Set the recipient for the new email
   .To = "recipient@mail.com"
    'Set the recipient for a copy
    .CC = "recipient2@mail.com"
    'Set the subject
    .Subject = "New subject"
    'The content of the document is used as the body for the email
    .Body = ActiveDocument.Content
    .Send
End With

If bStarted Then
    'If we started Outlook from code, then close it
    oOutlookApp.Quit
End If

'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing

End Sub
解决方案 于2018年11月19日编辑

几个小时后,我找到了解决办法:

Sub SendMail()

Selection.WholeStory
Selection.Copy

Dim olapp As Object
Dim olemail As Object
Dim olInsp As Object
Dim wddoc As Object

    On Error Resume Next
    Set olapp = GetObject(, "Outlook.Application")
    If Err <> 0 Then Set olapp = CreateObject("Outlook.Application")
    On Error GoTo 0
    Set olemail = olapp.CreateItem(0)
    With olemail
        .BodyFormat = 3
        .To = "example@example.com"
        .Subject = "Test mail"
        Set olInsp = .GetInspector
        Set wddoc = olInsp.wordeditor
        wddoc.Content.Paste
        .Display
    End With
 End Sub

可能正文设置为纯文本?邮件已为HTML格式,但从Word发送到Outlook邮件时格式已丢失。可能重复的,接受的答案列出了可能的内容。您可以撰写一篇回答文章并接受@尼顿谢谢你引起我的注意。当我问的时候,我还不知道答案。后来我根据收到的信息找到了解决方案。