我想使用Outlook MAPI列出特定文件夹中的所有电子邮件。我试过以下代码,
但它只显示该文件夹中20,000封电子邮件中的400封。如果有人能告诉我如何列出所有的电子邮件,我将不胜感激。
Sub EmailListinFolder()
Dim mn As Long
Dim Message As String
Dim item As Object
Dim NS As Object
Dim Folder As Object
'Get the MAPI Name Space
Set NS = CreateObject("Outlook.Application").GetNamespace("MAPI")
'Allow the user to select a folder in Outlook
Set Folder = NS.PickFolder
For Each item In Folder.Items
If item.Class = olMail Then
Message = item.Subject & "|" & item.CreationTime
If Len(Message) Then
mn = mn + 1
End If
End If
Next item
MsgBox (mn)
End Sub
答案 0 :(得分:0)
这是在线个人资料吗?最有可能的是你最终打开太多的项目(因为每个循环都会保留所有项目,直到循环退出)。请改用Table
对象 - 请参阅https://msdn.microsoft.com/VBA/Outlook-VBA/articles/folder-gettable-method-outlook上的示例。