Excel 如何在循环中一次显示一封电子邮件?

Excel 如何在循环中一次显示一封电子邮件?,excel,vba,outlook,Excel,Vba,Outlook,我试图显示所有电子邮件创建了一个循环,一次一个 在下面的代码中,但我想添加一个选项,要么自动发送电子邮件,要么看到它们显示,然后手动发送 当它打开并显示电子邮件项目时,当它循环时,它关闭上一个项目并打开一个新项目。我想在循环过程中打开一个,然后再打开另一个 子测试() 作为整数的Dim i 将wB设置为工作簿:设置wB=ThisWorkbook 将wsD设置为工作表:设置wsD=wB.工作表(“数据”) 将wsE设置为工作表:设置wsE=wB.工作表(“电子邮件格式”) 将LastRowsDat

我试图显示所有电子邮件创建了一个循环,一次一个

在下面的代码中,但我想添加一个选项,要么自动发送电子邮件,要么看到它们显示,然后手动发送

当它打开并显示电子邮件项目时,当它循环时,它关闭上一个项目并打开一个新项目。我想在循环过程中打开一个,然后再打开另一个

子测试()
作为整数的Dim i
将wB设置为工作簿:设置wB=ThisWorkbook
将wsD设置为工作表:设置wsD=wB.工作表(“数据”)
将wsE设置为工作表:设置wsE=wB.工作表(“电子邮件格式”)
将LastRowsData设置为整数
将LastRowEmail设置为整数
将OA设置为Outlook.Application:设置OA=新建Outlook.Application
将消息设置为Outlook.MailItem:Set msg=OA.CreateItem(olMailItem)
将收件人设置为字符串
收件人=工作表(“电子邮件格式”)。范围(“A2”)
LastRowsData=工作表(“数据”)。单元格(Rows.Count,1)。结束(xlUp)。行+1
LastRowEmail=工作表(“电子邮件格式”)。单元格(Rows.Count,1)。结束(xlUp)。行
对于i=2至最后一行数据
如果不是iError(Application.Match(wsD.Range(“H”)和i).Value_
wsD.Range(“A1:A”和LastRowsData),0)然后
LastRowEmail=LastRowEmail+1
wsE.Range(“A”和LastRowEmail).Value=wsD.Range(“G”和i).Value
如果结束
接下来我
对于i=2至最后一行电子邮件
加味精
.BodyFormat=olFormatHTML
.HTMLBody=wsE.Range(“D”&i).Value
.To=wsE.Range(“A”&i).Value
.Subject=wsE.Range(“C”和i).Value
.展示
以
接下来我
端接头

将Set msg=OA.CreateItem(olMailItem)带到第二个FOR循环中。然后在末尾有一个msgbox,询问用户是否要发送消息。如果他们这样做,发送消息。如果没有,则显示第二条消息,用户必须在创建新项目之前单击“继续”-Zac昨天

Set msg=OA.CreateItem(olMailItem)
带入第二个
FOR
循环。然后在末尾有一个msgbox,询问用户是否要发送消息。如果他们这样做,发送消息。如果没有,则显示第二条消息,用户必须在创建新消息之前单击“继续”item@Zac它就像一个符咒。谢谢没问题。很高兴这有帮助