正文中粘贴图表和文本的 VBA 电子邮件
Posted
技术标签:
【中文标题】正文中粘贴图表和文本的 VBA 电子邮件【英文标题】:VBA Email with pasted chart and text in body 【发布时间】:2015-09-05 19:03:58 【问题描述】:以下代码的目标是将所选图表粘贴到我的文本下方的电子邮件正文中。但是,它继续将其粘贴在我的文本上方。如何更改它以使其粘贴在下面?谢谢!
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.CC = "xyz@anc.com"
.BCC = "abc@xyz.com"
.Subject = "Test"
.Body = "Dear" & "Macro "
ActiveSheet.Range("P36:X46").Copy
Set wEditor = OutApp.ActiveInspector.WordEditor
wEditor.Application.Selection.Paste
.display
【问题讨论】:
【参考方案1】:更改选择的开始和结束。添加额外的换行符也可能是一个好主意。您还应该使用 MailItem.GetInspector 而不是 Application.ActiveInspector,因为该消息尚未显示。
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.CC = "xyz@anc.com"
.BCC = "abc@xyz.com"
.Subject = "Test"
.Body = "Dear" & "Macro " & vbCrLf
ActiveSheet.Range("P36:X46").Copy
set vInspector = OutMail.GetInspector
Set wEditor = vInspector.WordEditor
wEditor.Application.Selection.Start = Len(.Body)
wEditor.Application.Selection.End = wEditor.Application.Selection.Start
wEditor.Application.Selection.Paste
.display
【讨论】:
感谢@Dmitry Streblechenko!是否还有一种方法可以将其插入电子邮件正文的中间?假设我在“宏”之后添加了 4 或 5 个空格,然后写了更多文本。但我希望将图表粘贴在“宏”和结尾之间。 当然,正确计算偏移量即可。上面的脚本使用了消息体的长度,你需要一些其他的位置。例如。如果要在消息正文中插入字符串“Some text”的前面,则需要使用StrPost()计算位置并适当设置选择开始。 没关系。我用 Instr 弄明白了。感谢大家的帮助! 在邮件的 html 正文之间放置图表的好方法以上是关于正文中粘贴图表和文本的 VBA 电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
VBA 在 Outlook 中粘贴带有图表的特定 excel 范围
在 Excel 中使用 VBA,如何在 Outlook 中粘贴表格然后将表格转换为文本?