You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:在VBA批量Outlook邮件中添加称呼及多行正文

解决批量邮件添加个性化问候与多行正文的VBA修改方案

没问题,我帮你调整了VBA代码,既能给邮件开头加上带客户姓名的个性化问候,也能让正文分成多行显示,完美适配你的Excel批量发邮件需求:

修改后的完整代码

Sub Send_email_fromexcel()
    Dim edress As String
    Dim subj As String
    Dim message As String
    Dim filename As String
    Dim outlookapp As Object
    Dim outlookmailitem As Object
    Dim myAttachments As Object
    Dim path As String
    Dim lastrow As Integer
    Dim attachment As String
    Dim x As Integer
    ' 新增变量存储客户姓名
    Dim custName As String
    
    x = 2
    Do While Sheet1.Cells(x, 1) <> ""
        Set outlookapp = CreateObject("Outlook.Application")
        Set outlookmailitem = outlookapp.createitem(0)
        Set myAttachments = outlookmailitem.Attachments
        
        path = ""
        edress = Sheet1.Cells(x, 1)
        subj = Sheet1.Cells(x, 2)
        filename = Sheet1.Cells(x, 3)
        ' 从Excel第四列(D列)读取客户姓名,若你的姓名列不是D列,修改这里的数字4即可
        custName = Sheet1.Cells(x, 4)
        attachment = path + filename
        
        outlookmailitem.To = edress
        outlookmailitem.cc = ""
        outlookmailitem.bcc = ""
        outlookmailitem.Subject = subj
        
        ' --- 核心修改:个性化问候+多行正文 ---
        outlookmailitem.body = custName & "您好," & vbCrLf & vbCrLf & _
                               "请查收附件中的对账单。" & vbCrLf & _
                               "烦请核对清单内容并予以确认,如有任何问题请随时联系我们。"
        ' --- 核心修改结束 ---
        
        myAttachments.Add (attachment)
        outlookmailitem.display ' 测试时用display,确认没问题后改成outlookmailitem.send
        lastrow = lastrow + 1
        edress = ""
        x = x + 1
    Loop
    
    Set outlookapp = Nothing
    Set outlookmailitem = Nothing
End Sub

关键改动说明

  • 新增客户姓名读取:添加了custName变量,从Excel第四列(D列)读取客户姓名,你可以根据自己的表格结构修改列号(比如姓名在E列就改成Sheet1.Cells(x, 5))
  • 个性化问候开头:正文开头拼接了custName & "您好,",实现每个邮件的专属问候
  • 多行正文排版:用vbCrLf(VBA里的换行符)来拆分段落,vbCrLf & vbCrLf可以实现段落之间的空行,让邮件排版更清晰
  • 修正原代码语法错误:原代码里的字符串拼接写法有误,现在调整为正确的VBA字符串连接格式,确保换行符生效

额外提示

如果你的Excel表格里暂时没有客户姓名列,建议新增一列单独存储,这样比从邮箱地址提取姓名更准确。如果必须从邮箱提取(比如邮箱前缀是姓名),可以留言我再帮你调整这部分逻辑。

内容的提问来源于stack exchange,提问作者Vinay Chandrashekhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:47:34