我正在尝试每天下午5点发送一个打开的工作簿(Excel)。这是我的代码:
我把这个放在一个模块中
Sub SendEmail()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "yourmail"
.CC = ""
.BCC = ""
.Subject = "Report"
.Body = "Hello!"
.Attachments.Add ActiveWorkbook.FullName
.Send
End With
Set OutMail = Nothing
Set OutApp = Nothing
Application.OnTime TimeValue("17:00:00"), "SendEmail"
End Sub
我把这个放在ThisWorkbook
中Sub Workbook_Open()
Application.OnTime TimeValue("17:00:00"), "SendEmail"
End Sub
我的工作簿一直开着。 除了点击Excel中的运行按钮,我无法收到电子邮件。我希望它每天都自动完成。
答案 0 :(得分:0)
你应该做的是添加一个新的子设置来设置从打开命令和电子邮件调用的时间表,这将导致它每天重置。
添加此子:
Sub SetSchedule()
Application.OnTime TimeValue("17:00:00"), "SendEmail"
Application.OnTime TimeValue("23:59:00"), "SetSchedule"
End Sub
然后从开放子语言中调用它:
Sub Workbook_Open()
Call SetSchedule
End Sub
然后,您可以从电子邮件子目录
中删除Application.OnTime
来电
答案 1 :(得分:0)
您最好的选择将是一个简单的重复任务项目,通过使用提醒每天17:00重复进行设置
实施例: 创建自定义任务项以在1700重现
将以下代码添加到ThisOutlookSession
Option Explicit
Private Sub Application_Reminder(ByVal item As Object)
' Now call your VBA Code
End Sub
一旦提醒被触发,您的电子邮件将自动发送。