【发布时间】:2022-09-25 00:03:11
【问题描述】:
我是宏方面的新手,但我在 Excel 中创建了一个宏,我想循环浏览我的电子表格并在特定单元格值为空时发送电子邮件。此代码用于发送第一封电子邮件,但所有剩余的电子邮件仅显示第一封电子邮件收件人和主题。它不会执行发送唯一的第二封电子邮件或任何其他电子邮件。
接下来我可以尝试什么?
下面是我正在使用的代码:
Sub Macro1()
Dim rngCell As Range
Dim rngMyDataSet As Range
Dim Rng As Range
Dim OutApp As Object
Dim objOutlook As Object
Dim OutMail As Object
Dim EmailSubject As String
Dim sTo As String
Dim MailBody As Range
Dim EmailRecipient As String
Dim Signature As String
Application.ScreenUpdating = False
With ActiveSheet
If .FilterMode Then .ShowAllData
Set Rng = .Range(\"AH5\", .Cells(.Rows.Count, 1).End(xlUp))
End With
For Each rngCell In Rng
If rngCell.Offset(0, 6) > 0 Then
ElseIf rngCell.Offset(0, 5) > Evaluate(\"Today() +7\") And _
rngCell.Offset(0, 5).Value <= Evaluate(\"Today() +120\") Then
rngCell.Offset(0, 6).Value = Date
Set OutApp = CreateObject(\"Outlook.Application\")
Set OutMail = OutApp.CreateItem(0)
strbody = \"According to my records, your \" & Range(\"A5\").Value & \" contract is due for review \" & rngCell.Offset(0, 5).Value & _
\". It is important you review this contract ASAP and email me with any changes made. If it is renewed, please fill out the Contract Cover Sheet which can be found in the Everyone folder and send me the cover sheet along with the new original contract.\"
EmailSendTo = Sheets(\"sheet1\").Range(\"AH5\").Value
EmailSubject = Sheets(\"sheet1\").Range(\"A5\").Value
Signature = \"C:\\Documents and Settings\\\" & Environ(\"rmm\") & _
\"\\Application Data\\Microsoft\\Signatures\\rm.htm\"
On Error Resume Next
With OutMail
.To = EmailSendTo
.CC = \"hhh@gmail.com\"
.BCC = \"\"
.Subject = EmailSubject
.Body = strbody
.Display
Send_Value = Mail_Recipient.Offset(i - 1).Value
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End If
Next rngCell
Application.ScreenUpdating = True
End Sub
-
EmailSendTo = Sheets(\"sheet1\").Range(\"AH5\").Value总是一样的。 -
I\'ve created a macro为什么我不相信XD
标签: excel vba email outlook office-automation