我目前正在使用Outlook VBA脚本将PDF附件从自动报告电子邮件保存到公司共享驱动器上。问题是我很快就要休假两周了,所以我想知道当我的电脑处于睡眠模式时我能不能运行VBA吗?
根据我的研究,我了解如果我的电脑关闭,VBA根本无法运行,但是如果我让Outlook打开并让我的电脑进入睡眠状态怎么办?
以下是我的简单VBA脚本供您参考。 (它作为过滤规则运行)
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder_1 As String
saveFolder_1 = "my path 1"
Dim saveFolder_2 As String
saveFolder_2 = "my path 2"
Dim dateFormat
dateFormat = Format(itm.ReceivedTime, "yyyymmdd")
For Each objAtt In itm.Attachments
objAtt.SaveAsFile saveFolder_1 & "\" & "file name" & dateFormat & ".pdf"
objAtt.SaveAsFile saveFolder_2 & "\" & "file name" & dateFormat & ".pdf"
Set objAtt = Nothing
Next
End Sub
答案 0 :(得分:1)
不,当您的计算机处于休眠状态时,Outlook将无法运行。通常,您可以拥有由Exchange服务器执行的服务器端规则,无论Outlook是否已连接到它,但它将无法运行VB脚本或保存附件。您可以做的最好的事情是将邮件移动到其他文件夹或将邮件转发/委派给其他邮箱。
答案 1 :(得分:1)
另一种替代方法(我是这样做的)是在驻留在始终在线服务器上的虚拟机上运行outlook。这样,本地计算机的状态无关紧要,Outlook将始终运行并能够在服务器上执行代码。
答案 2 :(得分:0)
如果您无法在服务器上运行代码,则可以使用Windows任务计划程序将工作站从睡眠状态唤醒,运行宏,然后重新进入睡眠状态。 this page.
处有合理的说明