【发布时间】:2015-05-12 10:47:01
【问题描述】:
我使用以下功能来监视公共 Outlook 文件夹是否有新电子邮件到达:
Public Sub Application_Startup()
Set NewMail = Application.GetNamespace("MAPI").Folders(3).Folders(2)....
End Sub
由于某种原因,此公用文件夹的路径每周都会随着时间而变化。变化的是.Folders(3) 中的数字。它从 1 到 3 不等。
显然,为了保持函数正常工作并捕获错误,当路径发生变化时,我想实现一个 try and catch 函数,例如:
Try {
Set NewMail = Application.GetNamespace("MAPI").Folders(1).Folders(2)....
Catch Error
Try {
Set NewMail = Application.GetNamespace("MAPI").Folders(2).Folders(2)....
Catch Error
Try {
Set NewMail = Application.GetNamespace("MAPI").Folders(2).Folders(2)....
Catch Error
由于我是 VBA 新手,我正在努力实现这个 Try and Catch 函数。谁能协助处理 Outlook 中的 VBA 代码?
我认为我刚刚设法实施的一种解决方案是:
For i = 1 To 3
On Error Resume Next
Set NewMail = Application.GetNamespace("MAPI").Folders(i).Folders(2)....
Next i
【问题讨论】:
-
Application.GetNamespace("MAPI").Folders有Count属性吗?在这种情况下,您可以使用Set NewMail = Application.GetNamespace("MAPI").Folders(Application.GetNamespace("MAPI").Folders.Count).Folders(2) -
你可以在 VBA 中模拟一个 TRY CTACH 块请看这里stackoverflow.com/q/30991653/4413676