Потеря форматирования при отправке электронной почты через слово VBA в Outlook - PullRequest
0 голосов
/ 09 апреля 2020

Я создал письмо с вложением в слове vba. Все работает нормально, только форматирование теряется при запуске макроса и отправке почты в outlook; Я получаю простой простой текст. Код ниже для справки.

For j = 1 To Source.Sections.Count - 1
    Set oItem = oOutlookApp.CreateItem(olMailItem)
    With oItem
         ActiveDocument.ActiveWindow.View.DisplayBackgrounds = True
        .Subject = mysubject & mysubsuffix
        .Body = Source.Sections(j).Range.Text

        Set Datarange = Maillist.Tables(1).Cell(j, 1).Range
        Datarange.End = Datarange.End - 1
        .To = Datarange

       Set Datarange = Maillist.Tables(1).Cell(j, 2).Range
        Datarange.End = Datarange.End - 1
        .CC = Datarange.Text


        For i = 3 To Maillist.Tables(1).Columns.Count
            Set Datarange = Maillist.Tables(1).Cell(j, i).Range
            Datarange.End = Datarange.End - 1
            .Attachments.Add Trim(Datarange.Text), olByValue, 1
        Next i
        .Send
    End With
    Set oItem = Nothing
Next j
Maillist.Close wdDoNotSaveChanges

Заранее спасибо. :)

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Спасибо, что ответили всем.

Мне удалось добиться благодаря. Самому себе. Поскольку я извлекал основной текст из текстового документа, и он будет полностью динамическим c плюс l oop для слияния, не уверен, что в этом случае будет полезен HTML.

Мой обновленный код:

 ActiveDocument.ActiveWindow.View.DisplayBackgrounds = True
 Set editor = .GetInspector.WordEditor
.BodyFormat = olFormatRichText
.Body = Source.Sections(j).Range.Text
Source.Content.Sections(j).Range.Copy
editor.Content.Paste
editor.Close
0 голосов
/ 09 апреля 2020

Свойства Body и HTMLBody являются строковыми значениями, поэтому не содержат форматирования. Вы можете получить HTMLBody для предоставления форматированного вывода, только если включите теги HTML в строку, которую вы ему назначите.

См. этот вопрос

...