Вставка отформатированного диапазона Excel в сообщение Outlook - PullRequest
3 голосов
/ 23 марта 2010

Я использую Office 2007 и хочу использовать VBA для вставки диапазона отформатированных ячеек Excel в сообщение Outlook, а затем отправить его по почте. В следующем коде (который я поднял из разных источников) он работает без ошибок, а затем отправляет пустое сообщение ... вставка не работает.

Кто-нибудь может увидеть проблему и, еще лучше, помочь с решением?

Спасибо, -Steph

Sub SendMessage(SubjectText As String, Importance As OlImportance)
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim objOutlookAttach As Outlook.Attachment
Dim iAddr As Integer, Col As Integer, SendLink As Boolean
'Dim Doc As Word.Document, wdRn As Word.Range
Dim Doc As Object, wdRn As Object

' Create the Outlook session.
Set objOutlook = CreateObject("Outlook.Application")
' Create the message.
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)

Set Doc = objOutlookMsg.GetInspector.WordEditor
'Set Doc = objOutlookMsg.ActiveInspector.WordEditor
Set wdRn = Doc.Range
wdRn.Paste

Set objOutlookRecip = objOutlookMsg.Recipients.Add("MyAddress@MyDomain.com")
objOutlookRecip.Type = 1
objOutlookMsg.Subject = SubjectText
objOutlookMsg.Importance = Importance

With objOutlookMsg
    For Each objOutlookRecip In .Recipients
        objOutlookRecip.Resolve
        ' Set the Subject, Body, and Importance of the message.
        '.Subject = "Coverage Requests"
        'objDrafts.GetFromClipboard
    Next
    .Send
End With
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
End Sub

Ответы [ 3 ]

1 голос
/ 27 июня 2013

Поставить. Отображать перед .Отправить,

Простое, но быстрое решение, ваша проблема в том, что электронное письмо не обновляется с вставленным содержимым перед отправкой, поэтому принудительное его отображение сначала дает время ...

Также убедитесь, что у вас есть другой марко, который работает до этого, чтобы скопировать диапазон в буфер обмена ...

1 голос
/ 25 марта 2010

Я думаю, вам нужно позвонить .Сохранить в вашем почтовом элементе (objOutlookMsg) после того, как вы сделали все изменения.

0 голосов
/ 25 марта 2010

Для этого в Excel есть кнопка «Отправить получателю», которая обычно не находится на ленте.

Вы также можете использовать простые mapi, встроенные в офис, используя MailEnvelope в VBA

.. хорошая статья о том, что вы пытаетесь сделать http://www.rondebruin.nl/mail/folder3/mail4.htm

...