【问题标题】:VBA Email with pasted chart and text in body正文中粘贴图表和文本的 VBA 电子邮件
【发布时间】: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

【问题讨论】:

    标签: vba email excel outlook


    【解决方案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 正文之间放置图表的好方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 2016-02-27
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多