【问题标题】:How to access an Outlook folder from an Excel macro如何从 Excel 宏访问 Outlook 文件夹
【发布时间】:2021-01-06 14:12:24
【问题描述】:

我在 Excel 中有 VBA 代码来选择主 Outlook 收件箱。我想选择该收件箱中的任何文件夹或子文件夹。

例如,我想在我的主收件箱的这个屏幕截图中选择子文件夹ALD

我在 Outlook 中有另一个电子邮件地址,其中包含文件夹和子文件夹。我想选择此其他电子邮件地址的任何文件夹或子文件夹。例如,我有另一个名为 xxxx@yyyy.com 的电子邮件地址和一个文件夹 aaaa 和一个子文件夹 bbbb。如何选择子文件夹bbbb

Sub OpenOutlookFolder()
    Dim xOutlookApp As Outlook.Application
    Dim xNameSpace As Outlook.Namespace
    Dim xFolder As Outlook.Folder
    Dim xFolderType As OlDefaultFolders
    On Error Resume Next
    
    Set xOutlookApp = New Outlook.Application
    Set xNameSpace = xOutlookApp.Session
    Set xFolder = xNameSpace.GetDefaultFolder(olFolderInbox
    xFolder.Display
    Set xFolder = Nothing
    Set xNameSpace = Nothing
    Set xOutlookApp = Nothing
    Exit Sub
End Sub

【问题讨论】:

  • this question 没有经过验证的答案,但它会帮助你。请参阅 Vityaya 的回答。
  • 非常感谢大家的回答!不幸的是它不起作用,我的意思是我没有设法修改我的宏以使其执行我想要的,我尝试了主题“获取对其他收件箱的引用”中建议的所有解决方案......即使我有很好的 VBA知识,我不是开发人员,所以我很难确切地看到我必须带来哪些修改才能使我的宏按我想要的方式运行..无论如何它给了我一些想法......
  • 建议的副本不正确。见这里stackoverflow.com/questions/8322432/…

标签: excel vba outlook


【解决方案1】:

类似的东西:

Dim ThisNamespace As Outlook.NameSpace: Set ThisNamespace = Application.GetNamespace("MAPI")
Dim Inbox As Outlook.MAPIFolder: Set Inbox = ThisNamespace.GetDefaultFolder(olFolderInbox)

Dim BaseFolder As Outlook.MAPIFolder: Set BaseFolder = Inbox '.Folders("SubFolder1\SubFolder2...")

对于直接访问子文件夹,取消最后一行的注释并更新路径

如果您想创建一个可搜索/可编辑的文件夹结构,那么我对这个问题的回答可能会很有趣:How can one iterate through the subfolders of a subfolder of a shared mail inbox folder?

【讨论】:

    【解决方案2】:

    最后,通过再次检查链接获取对附加收件箱的引用,我设法修改了我的宏,以便它可以按我的意愿工作和执行。请在下面找到代码:

    Sub OpenOutlookFolderworks()
    

    将 xOutlookApp 调暗为 Outlook.Application

    Dim xNameSpace As Outlook.Namespace
    Dim xFolder As Outlook.Folder
     Dim vRecipient As Outlook.MAPIFolder
     Dim xFolderType As OlDefaultFolders
    On Error Resume Next
    Set xOutlookApp = New Outlook.Application
    Set xNameSpace = xOutlookApp.Session
    Set xFolder = xNameSpace.GetDefaultFolder(olFolderInbox)
    Set xFolder = xFolder.Folders("payment office")
    Set xFolder = xFolder.Folders("JIRA")
    xFolder.display
    Set xFolder = Nothing
    Set xNameSpace = Nothing
    Exit Sub
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多