Excel VBA创build错误

我正在试图写一个macros来阅读电子表格。 每当有人在一年或一年以后的任务,它将发送他们的主pipe电子邮件。

我想出了如何每个人发送一封电子邮件给主pipe,但是我想知道是否可以扫描所有人并将其添加到一封电子邮件中。 我试图修改它,但我无法得到它(这是我第二天的VBA,嘿嘿)

Dim OutApp As Object Dim OutMail As Object Dim cell As Range Application.ScreenUpdating = False Set OutApp = CreateObject("Outlook.Application") On Error GoTo cleanup For Each cell In Columns("D").Cells.SpecialCells(xlCellTypeConstants) If cell.Value Like "?*@?*.?*" And _ LCase(Cells(cell.Row, "E").Value) = "yes" _ And LCase(Cells(cell.Row, "H").Value) <> "send" Then Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail .To = cell.Value .Subject = "Reminder" If Cells(cell.Row, "E").Value = "YES" Then .body = Cells(cell.Row, "B") & " " & Cells(cell.Row, "A") .Send On Error GoTo 0 Cells(cell.Row, "H").Value = "send" Set OutMail = Nothing End If Next cell cleanup: Set OutApp = Nothing Application.ScreenUpdating = True End Sub 

这是未经testing的,但让我知道它是如何工作的:

 Sub test() Dim OutApp As Object Dim OutMail As Object Dim cell As Range Dim bodyText As String 'this is new Application.ScreenUpdating = False Set OutApp = CreateObject("Outlook.Application") bodyText = "" On Error GoTo cleanup For Each cell In Columns("D").Cells.SpecialCells(xlCellTypeConstants) If cell.Value Like "?*@?*.?*" And LCase(Cells(cell.row, "E").Value) = "yes" And LCase(Cells(cell.row, "H").Value) <> "send" Then Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail .To = cell.Value .Subject = "Reminder" If Cells(cell.row, "E").Value = "YES" Then 'The next line should add the text, and a new line character, so the next cell that needs this will simply be added to the string bodyText = Cells(cell.row, "B") & " " & Cells(cell.row, "A") & vbCrLf End If End With On Error GoTo 0 Cells(cell.row, "H").Value = "send" Set OutMail = Nothing End If Next cell OutMail.body = bodyText OutMail.Send cleanup: Set OutApp = Nothing Application.ScreenUpdating = True End Sub