这是我的要求。

我在OUTLOOK中配置了多个帐户。
1)[email protected](仅一个邮箱)
2)[email protected](有多个邮箱,例如:Unix box,Windows Box,Mac box)

在这里,我的第二个电子邮件帐户拥有自己的邮箱,并链接到多个邮箱,例如UNIX,Windows等。每个邮箱都有自己的收件箱和子文件夹。

现在,我需要在Unix框(收件箱)中选择一个文件夹,然后运行代码以在该文件夹中执行某些操作。

这就是我所拥有的

For Each oAccount In Application.Session.Accounts
If oaccount ="[email protected]" then
Set folder = ns.GetDefaultFolder(olFolderInbox) ' here it selects the inbox folder of account.
For each item in folder.items
Code goes here
next
end if
next


这对于单个邮箱帐户来说效果很好,但是当我对多个邮箱帐户执行此操作时,它不起作用。

任何帮助,将不胜感激。

最佳答案

扩展DanL的建议遍历ns.Folders,因为我无法告诉您您是否理解它。

Option Explicit

Sub accTopFolder()

Dim oAccount As Account
Dim ns As Namespace
Dim fldr As folder
Dim item As Object
Dim inbx As folder

Set ns = GetNamespace("MAPI")

For Each oAccount In Session.Accounts

    Debug.Print vbCr & "oAccount: " & oAccount
    '
    For Each fldr In ns.Folders
    ' Shows all the names so you can replace "test"
        Debug.Print " top folder: " & fldr.name
        If fldr = "test" Then
            Set inbx = fldr.Folders("Inbox")
            'inbx.Display
            For Each item In inbx.Items
                Debug.Print "  item .Subject: " & item.subject
            Next
            Exit For
        End If
    Next
Next

Set inbx = Nothing
Set ns = Nothing

End Sub

关于vba - 如果一个帐户有多个邮箱,则VBA选择邮箱,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33953386/

10-13 07:01