Скопируйте и вставьте диаграмму в тело письма VBA - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь добавить диаграмму в текст письма, используя GetInspector и WordEditor.

Мне также трудно добавлять текст в тело.Исходя из выбранной позиции абзаца, я могу либо отобразить текст, либо диаграмму, но не оба одновременно.

Пример кода:

Sub generateEmail()
Dim OutApp as Object
Dim OutMail as Object
Dim filePath as String
Dim cht as ChartObject
Dim vInspector as Object
Dim wEditor as Object

Set cht = wsData.ChartObjects("Chart 2")
cht.copy

With wsHome
filePath = ""
'also including an attachment which is working fine
End With

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

Set vInspector = OutMail.GetInspector
Set wEditor = vInspector.WordEditor

On Error Resume Next

With OutMail
.to = "All"
.CC = ""
.BCC = ""
.Subject = "Test"
.display
wEditor.Paragraphs(1).Range.Text = "Please see attached"
wEditor.Paragraphs(2).Range.Paste
'if I comment out paragraph 1 and change the second line to paragraph 1
'the chart prints perfectly, but the text does not show
'the way its set up now, only the "Please see attached" shows up

.Attachments.Add (filePath)
End With

Set OutMail = Nothing
Set OutApp = Nothing

End Sub

Я определенно что-то упускаю из-за способа чтения абзацев с помощью wordEditor, но я недостаточно использовал его для эффективного устранения неполадок.

1 Ответ

0 голосов
/ 21 декабря 2018

On Error Resume Next скрывает возникающую ошибку.Удалите его, и вы получите

Ошибка времени выполнения '5941': запрошенный элемент коллекции не существует.

В теле письма только 1параграф;Вы не можете вставить в пункт 2, потому что он не существует.Может быть Add второй абзац, а затем вставить:

wEditor.Paragraphs(1).Range.Text = "Please see attached"
wEditor.Paragraphs.Add
wEditor.Paragraphs(2).Range.Paste
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...