如何从excel VBA发送自动电子邮件
我有一个VBA代码,可以向用户发送电子邮件。 我希望代码每天自动运行。 这段代码写在一个按钮内如何从excel VBA发送自动电子邮件,excel,vba,outlook,Excel,Vba,Outlook,我有一个VBA代码,可以向用户发送电子邮件。 我希望代码每天自动运行。 这段代码写在一个按钮内 For RowNum = 7 To Sheet1.Cells(Sheet1.Rows.Count, "B").End(xlUp).Row If VBA.Format((Sheet1.Cells(RowNum, "H").Value), "DDMM") = VBA.Format((Sheet1.Range("B1").Value), "DDMM") Then
For RowNum = 7 To Sheet1.Cells(Sheet1.Rows.Count, "B").End(xlUp).Row
If VBA.Format((Sheet1.Cells(RowNum, "H").Value), "DDMM") = VBA.Format((Sheet1.Range("B1").Value), "DDMM") Then
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With OutMail
.SentOnBehalfOfName = Sheet1.Range("B3").Value
.CC = Sheet1.Range("B4").Value
.To = Sheet1.Cells(RowNum, "I").Value
.Subject = "Happy Birthday !"
.Body = "Happy Birthday"
.Display
.Send
End With
End If
Next RowNum
Sheet1.Range("B1").Value = Format(VBA.DateValue(Sheet1.Range("b1").Value) + 1, "dd-mm")
你可以使用一个
定时器
控件使它每天运行一次,但是Excel必须始终运行,最终你会意识到Excel/VBA不是实现这一点的正确方法。我完全同意你的看法。但是根据手头的任务,需要Excel。或者,您可以将其放入工作簿\u open
事件中,并在打开工作簿时运行它。您甚至可以将隐藏的单元格更改为当前日期,并检查以确保它每天只运行一次。但如上所述,这仍然依赖于每天有人打开工作表。VBA可能不是解决此问题的最佳方法。您可以研究将此代码传输到运行VBScript的计划任务,该任务可以完成所有工作,或者只打开工作簿并调用宏。查看这是否有帮助-