VBA从Excel发送电子邮件(根据条件)

我是一个绝对的初学者,并尝试在我的同事日常工作中促进几个任务。 我想创build一个代码,从Excel文件发送提醒邮件的信息。 这个想法是,Excel应该检查第12行的每一行,并检查是否有一个“x”写在一列中,标记哪一行我想发送提醒。 使用下面的代码,我可以生成所有的电子邮件,但我有困难在哪里和如何包括if('单元格(s,6).Value =“x”然后'),以便Excel继续通过所有填满的行。

非常感谢您的帮助!

 Sub SendReminderMail() Dim s As Long Dim OutLookApp As Object Dim OutLookMailItem As Object Dim iCounter As Integer Dim MailDest As String If MsgBox("Are you sure?", vbYesNo) = vbNo Then Exit Sub Set OutLookApp = CreateObject("Outlook.application") Set OutLookMailItem = OutLookApp.CreateItem(0) s = 12 Do Until Trim$(Cells(s, 1).Value) = "" Set OutLookMailItem = OutLookApp.CreateItem(0) With OutLookMailItem .To = Cells(s, 5).Value .Subject = "Reminder: " & Cells(1, 7).Value .Body = "Text, " & vbCrLf & vbCrLf & "Text'" & Cells(s, 2).Value s = s + 1 .Display End With Loop End Sub 

既然你正在用Do...Loop来检查每一行,那么你需要检查那个循环中的if 。 我把这个增量移到了If之外,这样它就会发生,不pipe你是否创build一个邮件项目。 否则,只有在有邮件发送的情况下,才会更改行,这意味着您将被卡在没有“x”的行上。

 Sub SendReminderMail() Dim s As Long Dim OutLookApp As Object Dim OutLookMailItem As Object Dim iCounter As Integer Dim MailDest As String If MsgBox("Are you sure?", vbYesNo) = vbNo Then Exit Sub Set OutLookApp = CreateObject("Outlook.application") Set OutLookMailItem = OutLookApp.CreateItem(0) s = 12 Do Until Trim$(Cells(s, 1).Value) = "" If Cells(s,6).Value = "x" Then Set OutLookMailItem = OutLookApp.CreateItem(0) With OutLookMailItem .To = Cells(s, 5).Value .Subject = "Reminder: " & Cells(1, 7).Value .Body = "Text, " & vbCrLf & vbCrLf & "Text'" & Cells(s, 2).Value .Display End With End If s = s + 1 Loop End Sub