将格式化的Excel范围粘贴到Outlook邮件中

我正在使用Office 2007,我想使用VBA将一系列格式化的Excel单元格粘贴到Outlook邮件中,然后发送邮件。 在下面的代码(我从各种来源解除),它运行没有错误,然后发送一个空的消息…粘贴不起作用。

任何人都可以看到问题,更好的是,帮助解决scheme?

谢谢,史蒂夫

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 

我想你需要调用。完成所有更改后,保存邮件项目(objOutlookMsg)。

把.Display放在之前。发送,

简单但快速修复,你的问题是电子邮件不会刷新粘贴的内容发送之前,迫使它显示第一次给它的时间…

另外请确保你有另一个marco,在此之前运行复制范围到你的剪贴板…

在excel中有一个button可以做到这一点,“发送邮件配方”,它通常不在function区上。

您还可以使用VBA中的MailEnvelope使用内置于办公室的简单地图

..一个很好的文章,你正在做什么http://www.rondebruin.nl/mail/folder3/mail4.htm