我在Outlook中打开了几个PST文件,我需要在Excel中列出这些PST中的所有邮件。
我的代码列出了收件箱中的邮件,但无法在所有已打开的PST中搜索。
以下是我的Outlook的结构:
收件箱
预算
我需要在其他文件夹中搜索(预算,库存,国家......)。
这是我的代码:
Sub List_mails()
Dim olapp As New Outlook.Application
Dim ns As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object
Dim mybody() As String
Dim fromsender As String
Set ns = olapp.GetNamespace("MAPI")
Set Dossier = ns.GetDefaultFolder(olFolderInbox)
b = 2
For Each i In Dossier.Items
Cells(b, 1) = i.Subject
Cells(b, 2) = i.ReceivedTime
Cells(b, 3) = i.SenderEmailAddress
b = b + 1
Next i
End Sub
答案 0 :(得分:1)
最简单的方法是循环遍历命名空间中的所有文件夹,如此
Windows.Management.Deployment.PackageManager
然后重复使用您用于默认文件夹的代码
答案 1 :(得分:0)
您使用.GetDefaultFolder
作为方法建议
要获取默认文件夹以外的特定文件夹,请使用.Folders
。
Set Dossier = ns.Folders("Budget")
如果这些文件夹中有子文件夹,则可以使用以下内容:
Dim sDossier As Outlook.Folder
Dim Dossier As Outlook.Folder
Set Dossier = ns.Folders("Budget")
For Each sDossier In Dossier
'/* put your loop here for items */
Next