Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 非默认收件箱的Outlook收件箱到文件夹排序宏_Vba_Outlook - Fatal编程技术网

Vba 非默认收件箱的Outlook收件箱到文件夹排序宏

Vba 非默认收件箱的Outlook收件箱到文件夹排序宏,vba,outlook,Vba,Outlook,我试图在VBA for Outlook 2013中,将主题中具有特定数字格式的任何邮件排序到相应的文件夹中。如果文件夹不存在(如果主题和文件夹中的字符串不匹配),则创建文件夹。我需要此宏来处理非默认收件箱。下面的链接是我获得原始代码的地方,它在底部拼接在一起。我在线上收到一个运行时错误(-2147221233(8004010f)): 我最近升级到Outlook 2016,遇到了同样的问题:默认收件箱不是我所期望的 当我安装Outlook 2016时,它创建了一个默认存储“Outlook数据文

我试图在VBA for Outlook 2013中,将主题中具有特定数字格式的任何邮件排序到相应的文件夹中。如果文件夹不存在(如果主题和文件夹中的字符串不匹配),则创建文件夹。我需要此宏来处理非默认收件箱。下面的链接是我获得原始代码的地方,它在底部拼接在一起。我在线上收到一个运行时错误(-2147221233(8004010f)):


我最近升级到Outlook 2016,遇到了同样的问题:默认收件箱不是我所期望的

当我安装Outlook 2016时,它创建了一个默认存储“Outlook数据文件”。当我添加电子邮件帐户时,它为每个帐户创建了一个单独的存储。直到后来我才意识到默认收件箱位于未使用的“outlook数据文件”中

出于您的兴趣,此宏将显示保存默认收件箱的商店的名称:

Sub DsplUsernameOfStoreForDefaultInbox()

  Dim NS As Outlook.NameSpace
  Dim DefaultInboxFldr As MAPIFolder

  Set NS = CreateObject("Outlook.Application").GetNamespace("MAPI")
  Set DefaultInboxFldr = NS.GetDefaultFolder(olFolderInbox)

  Debug.Print DefaultInboxFldr.Parent.Name

End Sub
在代码中替换

 Set myInbox = myAccounts.Item(i).GetDefaultFolder(olFolderInbox)

将“outlook数据文件”替换为包含您希望访问的收件箱的商店名称后

您可以使用此技术在任何存储中的任何深度引用任何文件夹。例如:

Set FldrTgt = Session.Folders("zzzz").Folders("yyyy").Folders("xxxx").Folders("wwww")
加分

我不明白:

Set objDestinationFolder = myInbox.Parent.Folders("Inbox")
这从myBox开始,使用属性父级转到存储,然后使用属性文件夹再次转到“收件箱”。这与:

Set objDestinationFolder = myInbox

非常感谢。我把剧本准备好了!具体如下:
Set FldrTgt = Session.Folders("zzzz").Folders("yyyy").Folders("xxxx").Folders("wwww")
Set objDestinationFolder = myInbox.Parent.Folders("Inbox")
Set objDestinationFolder = myInbox