Vba ActiveExplorer/Inspector选择多个项目

Vba ActiveExplorer/Inspector选择多个项目,vba,outlook,Vba,Outlook,我试图让Outlook只选择一个邮件项目,但它似乎选择了多个邮件项目。我将邮件发送到的内部程序引用的是这些文档,而不是此文档。因此,它不允许我选择文件类型,我相信这是因为程序将文件解释为容器而不是文件。tl;dr:有人能在我的代码中看到允许Outlook选择多个邮件项目的内容吗 Dim objApp As Outlook.Application Set objApp = Application Select Case TypeName(objApp.ActiveWindow) C

我试图让Outlook只选择一个邮件项目,但它似乎选择了多个邮件项目。我将邮件发送到的内部程序引用的是这些文档,而不是此文档。因此,它不允许我选择文件类型,我相信这是因为程序将文件解释为容器而不是文件。tl;dr:有人能在我的代码中看到允许Outlook选择多个邮件项目的内容吗

Dim objApp As Outlook.Application
    Set objApp = Application
Select Case TypeName(objApp.ActiveWindow)
    Case "Explorer"
        If objApp.ActiveExplorer.Selection.Count > 0 Then
            Set currentItem = objApp.ActiveExplorer.Selection.Item(1)
        Else
            MsgBox ("No Message Selected.")
            Exit Sub
        End If
    Case "Inspector"
        Set currentItem = objApp.ActiveInspector.currentItem
    Case Else
        MsgBox ("Please select a mail item.")
        Exit Sub
End Select

看起来您需要遍历在资源管理器窗口中选择的所有项目:

 Set currentItem = objApp.ActiveExplorer.Selection.Item(i)
例如:

 For i = 1 To oSel.Count         ' Loop through all the currently .selected items
    Set oItem = oSel.Item(i)    ' Get a selected item.
 Next i
看看这篇文章中的示例代码


我还建议打破调用链,在单独的代码行中声明每个属性或方法调用

您到底是如何让Outlook只选择一个邮件项目的?您没有选择项目,只是读取现有选择。现有选择是否不是所选项目?我想我认为1是一个指定拾取1项的数组,我是否错误地认为这是一个数组?几乎,它是一个集合。阅读该收藏中的任何内容都不会改变选择。好的,谢谢,这有助于我理解很多。我将看看是否可以将代码固定到一个文件,而不是一组文件。我实际上只是在看这篇文章,感谢您确认这篇文章是正确的。