我有一组Excel报告,我在早上运行,生成六封带有附件的电子邮件,另外还有一个在星期三运行的单独报告集,只生成一封电子邮件。
为了使这些报告完全自动化并在没有监督的情况下运行并通过Outlook安全性弹出窗口,我使用了Sendkeys函数(这是来自' Wednesday'报告):
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = distlist
.CC = ""
.BCC = ""
.Subject = "30+ Days and Early Warning lists for " & Format(Now, "dd mmm")
.Body = "Latest lists attached"
.Attachments.Add ("C:\Users\" & whoami & "\Desktop\" & outputdirectoryname & "\" & outputfile1 & "")
.Attachments.Add ("C:\Users\" & whoami & "\Desktop\" & outputdirectoryname & "\" & outputfile2 & "")
.Display
Application.Wait (Now + TimeValue("0:00:06"))
Application.SendKeys "%s"
End With
Set OutMail = Nothing
Set OutApp = Nothing
Sheets("Run Buttons").Select
......效果很好。
现在,我的问题不是这段代码不能正常工作,而是第一封电子邮件实际上从未真正由Outlook发送但仍然显示并且“卡住”#39;在发件箱中。如果我无法手动干预并且发送'这是第一封电子邮件,然后随后的电子邮件也会被卡住,但是,如果我手动执行“发送”电子邮件。它,其他人按预期流过。
因此,例如,星期三的情况是这样的......
对于周一,周二,周四,周五运行...
如果我反向运行报告,以便星期三报告最后运行,则其电子邮件会按预期自动发送。
我的笔记本电脑被锁定得比....更紧密所以任何软件的添加'不会发生,同样直接访问SMTP / Exchange服务器所以现在Sendkeys是唯一可用的电子邮件自动化。 Sendkeys代码的所有出现都是相同的。
正如我所说,困惑!
我在使用Excel或Outlook时遇到问题吗?
......以及我如何修复'它?
非常感谢您的帮助和时间。
答案 0 :(得分:0)
仅当检查员在前台处于活动状态时,SendKeys才可能正常工作。为什么不尝试其他解决方法(ClickYes,Redemption)?见http://www.outlookcode.com/article.aspx?id=52
答案 1 :(得分:0)
在.Display
之前添加以下代码If Application.VBE.MainWindow.Visible = True Then Application.VBE.MainWindow.Visible = False