我有Excel vba宏来打开特定的Outlook收件箱子文件夹,但Outlook子文件夹在新的Outlook窗口中打开 .
这样做的结果是,如果我不手动关闭新窗口,那么在运行宏几次后,我打开了多个Outlook窗口 .
如何修改代码,以便Outlook只是导航到现有单个窗口中所需的子文件夹,请?
目前,新的Outlook窗口将打开Excel电子表格 . 运行宏时,我希望Outlook的当前实例转到所需的子文件夹,并在Excel电子表格的顶部进行应用 .
我没有写下面的代码 . 我已将下面的代码合并到一个更大的宏中,但其余部分则无关紧要 .
Dim MyOutLookApp As Object
Dim MyNameSpace As Object
Dim MyFolder As Object
Dim This As Variant
'// Late Binding
Set MyOutLookApp = CreateObject("Outlook.Application") '''I have also tried using = GetObject(, "Outlook.Application").... no change
Set MyNameSpace = MyOutLookApp.GetNamespace("MAPI")
On Error GoTo ErrFlder
Set MyFolder = MyNameSpace.GetDefaultFolder(olFldr.olFolderInbox)
Set MyFolder = MyFolder.Folders
Set This = MyFolder
Set This = MyFolder(strJobName) '''strJobname is a string picked up from elsewhere. It is simply the name of the inbox subfolder I want to go to.
This.display
End Sub
3 回答
从我对another question的回答:(实际上是一些)
Dim olApp作为Outlook.Application
On Error Resume Next
设置olApp = GetObject(,“Outlook.Application”)
On Error GoTo 0
如果olApp什么都没有
IsOutlookOpen = False
其他
IsOutlookOpen = True
万一
结束功能
有关从源中打开 new vs. existing instances Office应用程序的更多信息: Ron de Bruin
如果您只想导航到其现有单个窗口中的子文件夹,则使用Application.ActiveExplorer Method (Outlook)与CurrentFolder Property一起使用
以下示例在同一窗口应用程序中激活 SubFolder "Temp" 下的 "Temp"
您的代码始终调用
MAPIFolder.Display
,因此您每次都会获得一个新的资源管理器窗口 . 请执行以下操作