【问题标题】:Sending out email with signature?发送带有签名的电子邮件?
【发布时间】:2019-08-23 18:53:58
【问题描述】:

我正在 Excel 中为带有签名的批量电子邮件创建 VBA 代码。

我的代码在我使用 .Display 时有效。

当我使用 .Send 运行我的代码时,我得到一个错误

运行时错误 '1525415670 该项目已被移动或删除

突出显示.HTMLBody = "Hello" & .HTMLBody

我已将 .HTMLBody = "Hello" & .HTMLBody 移到 .Send 代码上方,但签名未显示在我的电子邮件中。

此外,有没有一种方法可以自定义我的正文,以便我可以向每个收件人发送带有不同 URL 链接的群发电子邮件?

我想离开.Body = Sheet1.Cells (I, 3).Value 来做这件事。

有没有办法可以保留两行代码:

.Body = Sheet1.Cells(I, 3).Value

.HTMLBody = "Hello" & .HTMLBody
Sub Send_Multiple_Emails_Two_Sheet1()
    
    Dim ol As Outlook.Application
    Dim olmail As Outlook.MailItem
    
    Set ol = New Outlook.Application
    
    For i = 2 To Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
    
        Set olmail = ol.CreateItem(olMailItem)
        
        With olmail
            .To = Sheet1.Cells(i, 1).Value
            .Subject = Sheet1.Cells(i, 2).Value
            .Body = Sheet1.Cells(I,3).Value
            .Send
            .HTMLBody = "Hello" & .HTMLBody
        End With
    
    Next
    
End Sub

我希望输出如下:

Strbody(电子邮件正文)和 .HTMLBody(签名)

【问题讨论】:

    标签: html excel vba


    【解决方案1】:

    一旦您Send 发送电子邮件,您将无法再访问HTMLBody,因为该项目已经消失。因此,Send 必须放在最后。

    我认为您需要先Display 才能获得签名。试试这个:

    With olmail
        .Display
        .To = Sheet1.Cells(i, 1).Value
        .Subject = Sheet1.Cells(i, 2).Value
        .HTMLBody = "Hello" & .HTMLBody
        .Send
    

    【讨论】:

    • 我还没有这个,它会删除签名,所以这不是一个选项
    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 2018-02-05
    • 2018-04-27
    • 2015-08-08
    • 2020-06-12
    • 1970-01-01
    • 2012-02-01
    • 2021-10-06
    相关资源
    最近更新 更多