ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2964|回复: 9

[求助] outlook群发带不同附件的邮件给不同的人

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-4-24 16:04 | 显示全部楼层 |阅读模式
想发送每个月的PDF的工资单单独给每位员工,之前有找到其他大神分享的发送模板,想请问下如何添加一个附件EXCEL中attachment设置为存放路径还是直接放附件在里面?要如何修改?

发邮件例子.rar

10.64 KB, 下载次数: 50

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-4-24 17:26 | 显示全部楼层
能发送邮件的源代码,现在不知道怎么加attachment.

Sub SendEmail()
  Dim OutlookApp As Object
  Dim MItem As Object
  Dim cell As Range
  Dim Subj As String
  Dim EmailAddr As String
  Dim Recipient As String
  Dim Bonus As String
  Dim Msg As String
  
  'Create Outlook object
  Set OutlookApp = CreateObject("Outlook.Application")
  
  'Loop through the rows
  For Each cell In Columns("B").Cells.SpecialCells(xlCellTypeConstants)
    If cell.Value Like "*@*" Then
      'Get the data
      Subj = "Your Annual Bonus"
      Recipient = cell.Offset(0, -1).Value
      EmailAddr = cell.Value
      Bonus = Format(cell.Offset(0, 1).Value, "$0,000.")
            
     'Compose message
      Msg = "Dear " & Recipient & vbCrLf & vbCrLf
      Msg = Msg & "I am pleased to inform you that "
      Msg = Msg & "your annual bonus is "
      Msg = Msg & Bonus & vbCrLf & vbCrLf
      Msg = Msg & "William Rose" & vbCrLf
      Msg = Msg & "President"
   
      'Create Mail Item and send it
      Set MItem = OutlookApp.CreateItem(0)
      With MItem
        .To = EmailAddr
        .Subject = Subj
        .Body = Msg
        .Display
        .send
        
        'NOTE: To actually send the emails, use .Send instead of .Display
        '.Send
      End With
    End If
  Next
End Sub

TA的精华主题

TA的得分主题

发表于 2020-4-25 08:41 | 显示全部楼层
Sub 添加附件()
    Application.ScreenUpdating = False
    Dim MyName, i, arr
    arr = [a1].CurrentRegion
    MyName = Dir(ThisWorkbook.Path & "\" & "*.xlsx")
    Do While MyName <> ""
        For i = 2 To UBound(arr) '隐藏一对多添加功能
            If arr(i, 5) = Split(MyName, ".")(0) Then
                arr(i, 4) = MyName
                Exit For
            End If
        Next
        MyName = Dir
    Loop
    [a1].CurrentRegion = arr
    MsgBox "附件添加完毕!", , "报告!"
End Sub

Sub 发送邮件()
    Dim i, arr
    Dim OutlookApp As Outlook.Application
    Dim OutlookItem As Outlook.MailItem
    arr = [a1].CurrentRegion
    For i = 2 To UBound(arr)
        收件地址 = arr(i, 1): 主题 = arr(i, 2): 内容 = arr(i, 3): 附件 = arr(i, 4)
        Set OutlookApp = New Outlook.Application
        Set OutlookItem = OutlookApp.CreateItem(olMailItem)
        On Error GoTo 错误
        With OutlookItem
            .To = 收件地址
            .Subject = 主题
            .Body = 内容
            If 附件 <> "" Then
                .Attachments.Add ThisWorkbook.Path & "\" & 附件
            End If
            .Send
        End With
    Next
发送提示:
    MsgBox "发送OK,注意查收!", , "温馨提示!"
    Exit Sub
错误:
    MsgBox "邮件发送失败!", , "温馨提示!"
    Resume 发送提示
End Sub
目标区域你自己修改下

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-4-26 08:57 | 显示全部楼层
约定的童话 发表于 2020-4-25 08:41
Sub 添加附件()
    Application.ScreenUpdating = False
    Dim MyName, i, arr

超级感谢,但是其实我是小白,是直接复制就可以用吗?

TA的精华主题

TA的得分主题

发表于 2020-4-26 08:59 | 显示全部楼层
huachixt 发表于 2020-4-26 08:57
超级感谢,但是其实我是小白,是直接复制就可以用吗?

可能会报错,代码你看不懂的话没法改啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-4-26 09:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
约定的童话 发表于 2020-4-26 08:59
可能会报错,代码你看不懂的话没法改啊

能不能直接帮忙在附件表格中改下呀。 那个Msg 的句子我自己编辑就可以 ,超级感恩。

TA的精华主题

TA的得分主题

发表于 2020-4-26 11:35 | 显示全部楼层
约定的童话 发表于 2020-4-25 08:41
Sub 添加附件()
    Application.ScreenUpdating = False
    Dim MyName, i, arr

很好奇 添加附件  与发送邮件这两段代码 有关系吗 ???
添加附件 就是这句就行   .Attachments.Add ThisWorkbook.Path & "\" & 附件

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-4-26 13:31 | 显示全部楼层
闻启学 发表于 2020-4-26 11:35
很好奇 添加附件  与发送邮件这两段代码 有关系吗 ???
添加附件 就是这句就行   .Attachments.Add T ...

这个要添加到DIM 上面吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-4-26 13:40 | 显示全部楼层
添加报错信息,求帮助

Desktop.rar

123.37 KB, 下载次数: 13

TA的精华主题

TA的得分主题

发表于 2020-4-26 15:14 | 显示全部楼层
闻启学 发表于 2020-4-26 11:35
很好奇 添加附件  与发送邮件这两段代码 有关系吗 ???
添加附件 就是这句就行   .Attachments.Add T ...

第一段准确来说叫添加工作簿名称,主要是获取名称用的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 21:20 , Processed in 0.047124 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表