我连接到交换服务器,以便一些邮件存储在我的本地Outlook文件中,一些邮件存储在服务器上 . 在outlook中,文件夹的项目数(我想要读出)显示13.000项 . 但是当我尝试通过VBA迭代项目时:
Sub asdf()
Dim objOutlook As Outlook.Application
Set objOutlook = CreateObject("Outlook.Application")
Dim objMAPIFolder As Object
Dim objFolder As Object
Dim myItem As Outlook.MailItem
Dim archivFolder As Outlook.Folder
Dim subFolder As Outlook.Folder
For Each objMAPIFolder In objOutlook.Session.Folders
For Each objFolder In objMAPIFolder.Folders
If objFolder.Name = "Inbox" Then
Set archivFolder = objFolder
For Each subFolder In archivFolder.Folders
If subFolder.Name = "Folder X" Then
MsgBox subFolder.Items.Count 'should be 13.000 but says 5.000
End If
Next
End If
Next
Next
Set objOutlook = Nothing
End Sub
这显示我的数量为5.000 . 在Outlook中,我可以单击“单击此处以查看有关Microsoft Exchange的更多信息”并查看其余邮件 .
如何通过VBA迭代基于服务器的Mails?
关心Wolle
1 回答
在扩展MAPI级别(C或Delphi)上,您可以open the folder in the online mode访问远程存储的消息 .
如果是VBA(或其他lnaguages,如C#或VB.Net),如果使用Redemption是一个选项,它可以在在线模式下打开文件夹(其RDOSession .
GetFolderFromID
方法允许传递MAPI_NO_CACHE
标志):