【发布时间】:2013-12-26 19:19:50
【问题描述】:
文件夹路径是"Mailbox - IT Support Center"\"Onshore - Josh"\"Completed"。
我想知道每个人昨天完成的邮箱中的电子邮件总数。
大约有 25 个邮箱,但它们都遵循相同的路径,从 邮箱 - IT 支持中心开始。
除了循环之外,脚本都可以工作。它迭代到第二个文件夹,但它仍然搜索第一个邮箱。 objfolder 很可能有问题。
Sub CompletedEmailCount()
Dim objOutlook As Object, objnSpace As Object, objFolder As MAPIFolder
Dim MailItem
Dim EmailCount As Integer
Dim strFolderName
Dim FolderName() As Variant
Dim i As Integer
Dim objFolder1
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set objFolder = objnSpace.GetDefaultFolder(olFolderInbox)
strFolderName = ("Mailbox - IT Support Center")
ReDim FolderName(3) 'change this to how many folders you have
'assign each folder name on the array elements
FolderName(1) = ("Onshore - Josh")
FolderName(2) = ("OnShore - Ashton")
FolderName(3) = ("OnShore - Beth")
'loop through each foldername
For i = 1 To 3
On Error Resume
Next
Set objFolder = objnSpace.Folders(strFolderName).Folders(FolderName(i)).Folders ("completed")
On Error GoTo 0
If objFolder Is Nothing Then GoTo skip
For Each MailItem In objFolder.Items
If DatePart("d", Date - 1) = DatePart("d", MailItem.ReceivedTime) Then EmailCount = EmailCount + 1
Next
skip:
Next
MsgBox "Completed Email Totals from Yesterday: " & EmailCount
End Sub
【问题讨论】:
-
你说文件夹的路径是文件夹路径是“邮箱 - IT Support Center”\“Onshore - Josh”\“Completed”......但是这些是公共文件夹吗?您是否正在从您的个人资料连接到共享收件箱?需要更多信息
-
是的,这些是共享文件夹。每个代理都有一个与 Onshore 共享的文件夹——“他们的名字”,然后在每个代理中都有一个完整的文件夹。
-
您正在收件箱中查找这些共享文件夹,请查看几个级别。 objnSpace.Folders - 应该为您提供配置文件中所有文件夹的列表。
-
我能够准确地访问文件夹,问题出在循环。当我将鼠标悬停在文件夹名称(i)上时,它确实显示了下一个文件夹(Ashton),但是当悬停在 objFolder.Items 中的 For Each MailItem 上时,它会查看来自第一个代理(Josh)的相同 10 封电子邮件