Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在范围内循环创建适用收件人的电子邮件_Excel_Vba_Outlook - Fatal编程技术网

Excel 在范围内循环创建适用收件人的电子邮件

Excel 在范围内循环创建适用收件人的电子邮件,excel,vba,outlook,Excel,Vba,Outlook,我创建了一个宏来循环一列中的一系列单元格(G2:G5),将该值粘贴到另一个单元格(A2),查找详细信息以创建带有附件的电子邮件(电子邮件地址、抄送电子邮件地址、收件人姓名、文件附件名) 收件人和抄送收件人正在累积,而不是替换 例如,而不是[电子邮件2收件人:电子邮件2收件人,抄送:电子邮件2收件人] 我收到[电子邮件2收件人:电子邮件1和2收件人,抄送:电子邮件1和2收件人],依此类推,直到我的最后一封电子邮件有所有收件人 我假设这与to/cc recipients和/或to/cc recipi

我创建了一个宏来循环一列中的一系列单元格(G2:G5),将该值粘贴到另一个单元格(A2),查找详细信息以创建带有附件的电子邮件(电子邮件地址、抄送电子邮件地址、收件人姓名、文件附件名)

收件人和抄送收件人正在累积,而不是替换

例如,而不是[电子邮件2收件人:电子邮件2收件人,抄送:电子邮件2收件人]

我收到[电子邮件2收件人:电子邮件1和2收件人,抄送:电子邮件1和2收件人],依此类推,直到我的最后一封电子邮件有所有收件人

我假设这与to/cc recipients和/或to/cc recipient变量的For/next循环有关

Sub create_email()

Dim cell As Range
Dim selectedRange As Range

Sheets("Email Generator").Select
Range("G2:G5").Select

Set selectedRange = Application.Selection

For Each cell In selectedRange.Cells

    cell.Copy
    Range("A2").Select
    ActiveSheet.Paste

    Dim outlookApp As Outlook.Application
    Dim myMail As Outlook.MailItem
    Dim source_file, to_emails, cc_emails As String
    Dim i, j As Integer

    Set outlookApp = New Outlook.Application
    Set myMail = outlookApp.CreateItem(olMailItem)

    For i = 2 To 2
        to_emails = to_emails & Cells(i, 1) & ";"
        cc_emails = cc_emails & Cells(i, 2) & ";"
    Next i

    For j = 2 To Range("A8").Value
        source_file = "C:\Gavin Files\General\" & Cells(j, 3)
        myMail.Attachments.Add source_file

        myMail.CC = cc_emails
        myMail.To = to_emails
        myMail.Subject = "Rewards Statements - Please Communicate by 1/11"
        myMail.HTMLBody = Range("A5").Value & "," & "<br>" & "<br>" & "All year-end rewards are approved and the next step is formal communication to your employees." & "<br>" & "<br>" & "Attached are compensation statements to be delivered to your employees during rewards discussions next week.  Please communicate by Friday, January 10th.  As a reminder, performance discussions must occur prior to the rewards discussion." & "<br>" & "<br>" & " - Jan 6-10 - Managers hold rewards communications with their direct reports" & "<br>" & " - Jan 13 - Increases visible to all employees in Workforce Now" & "<br>" & " - Jan 17 - Merit and bonus effective in payroll (promotions and increases effective Jan 6)" & "<br>" & "<br>" & "Thank you for your leadership and commitment to the compensation planning process. Please let us know if you have any questions." & "<br>" & "<br>" & "Thank you," & "<br>" & "Gavin"
        myMail.Display
        myMail.Save
    Next j

Next cell

End Sub
Sub-create_-email()
暗淡单元格作为范围
Dim selectedRange作为范围
工作表(“电子邮件生成器”)。选择
范围(“G2:G5”)。选择
设置selectedRange=Application.Selection
对于selectedRange.Cells中的每个单元格
手机,收到
范围(“A2”)。选择
活动表。粘贴
Dim outlookApp作为Outlook.Application
将myMail设置为Outlook.MailItem
Dim source_文件、to_电子邮件、cc_电子邮件作为字符串
作为整数的Dim i,j
Set-outlookApp=新建Outlook.Application
设置myMail=outlookApp.CreateItem(olMailItem)
对于i=2到2
to_emails=to_emails&Cells(i,1)和“
抄送电子邮件=抄送电子邮件和单元格(i,2)和“
接下来我
对于j=2至范围(“A8”)。值
source\u file=“C:\Gavin Files\General\”和单元格(j,3)
myMail.Attachments.Add源文件
myMail.CC=CC\u电子邮件
myMail.To=发送电子邮件
myMail.Subject=“奖励声明-请于11月1日前联系”
myMail.HTMLBody=Range(“A5”).Value&“,”&“
”&“
”&“所有年终奖励都已批准,下一步是与员工进行正式沟通。”&“
”&“
”&”“附件是下周薪酬讨论期间将向您的员工提交的薪酬声明。请在1月10日星期五之前进行沟通。作为提醒,绩效讨论必须在薪酬讨论之前进行。”&“
”&“
”&”-1月6日至10日-经理与其直接下属进行薪酬沟通”&“
“&”-1月13日-所有员工现在都可以看到加薪”&“
”&”-1月17日-工资单中有效的绩效和奖金(1月6日生效的晋升和加薪)&“
”&“
”&“感谢您对薪酬规划过程的领导和承诺。如果您有任何问题,请告知我们。”&“
”&“
”&”“谢谢你,&”
“和“加文” myMail.Display 我的邮件,保存 下一个j 下一个细胞 端接头
你如何区分
收件人
抄送
电子邮件收件人?就是这样!我刚刚删除了那些不必要的TO/CC变量声明,并直接引用了下面mail.CC/TO字段中的工作表单元格值。现在它工作得很好-这是一个惊人的景象!节省了这么多时间!你感觉如何u区分
收件人
抄送
电子邮件收件人?就是这样!我刚刚删除了那些不必要的TO/CC变量声明,并直接引用了下面mail.CC/TO字段中的工作表单元格值。现在它工作得很好-这是一个惊人的景象!节省了这么多时间!