【问题标题】:Adding signature in Outlook email after .Body using Excel VBA在使用 Excel VBA 的 .Body 之后在 Outlook 电子邮件中添加签名
【发布时间】:2020-11-27 11:01:46
【问题描述】:

在 Excel VBA 中,我想创建一个宏来通过 Outlook 发送一封信。

我需要一个签名,但我无法创建它,因为我有一个 .Body 部分,我需要在它之后粘贴一个动态范围的单元格。

With newEmail
    .Display
    .SentOnBehalfOfName = ""
    .To = ""
    .CC = ""
    .Subject = ""
    .BodyFormat = olFormatHTML
    .Body = "Good day" & vbCrLf & "bla bla "

    Set xInspect = newEmail.GetInspector
    Set pageEditor = xInspect.WordEditor

    Sheet1.Range("G128", ActiveSheet.Range("G128").End(xlDown)).Copy
    
    pageEditor.Application.Selection.Start = Len(.Body)
    pageEditor.Application.Selection.End = pageEditor.Application.Selection.Start
    pageEditor.Application.Selection.Paste
    
    .Display
    .Send

我应该添加什么以及在哪里添加,以便在代码粘贴范围后添加签名?

附: .Body 之前的范围是必要的。

【问题讨论】:

  • 只需调整克里斯蒂安的答案,以便您从团队签名的任何位置获取签名文件(只是一些 html)文件。

标签: excel vba outlook


【解决方案1】:

在 Word 文档中新建一个范围并调用Range.insertFile() 插入签名的 HTML 文件。

【讨论】:

    【解决方案2】:

    如果您在代码中构造签名并将其存储在变量中,例如签名,你可以这样做......

    With newEmail
        .SentOnBehalfOfName = ""
        .To = ""
        .CC = ""
        .Subject = ""
        .BodyFormat = olFormatHTML
        .Body = "Good day" & vbCrLf & "bla bla "
        
        Sheet1.Range("G128", ActiveSheet.Range("G128").End(xlDown)).Copy
        
        With .GetInspector.WordEditor.Range
            .Collapse 0
            .Paste
            .Collapse 0
            .Text = vbCrLf & Signature
            .Style = "No Spacing"
        End With
        
        .Display
        '.Send
    End With
    

    【讨论】:

      【解决方案3】:

      尝试在末尾添加 .body = .body & .HTMLbody

      【讨论】:

        猜你喜欢
        • 2016-07-12
        • 2013-10-06
        • 1970-01-01
        • 2021-12-21
        • 1970-01-01
        • 1970-01-01
        • 2011-09-14
        • 2015-03-23
        • 2017-11-26
        相关资源
        最近更新 更多