如何使用Excel VBA在Outlook中指定嵌套文件夹

时间:2017-04-26 14:37:59

标签: excel excel-vba email outlook outlook-vba vba

我需要帮助使用Excel VBA在Outlook中指定嵌套文件夹。我将在下面发布我的代码。

我可以指定"收件箱"文件夹但是当我尝试指定一个位于"收件箱中的文件夹时#34;文件夹,代码返回"没有这样的文件夹"信息。

有谁知道为什么会发生这种情况?如果是这样,我该如何解决?

    public void repeat(int n, Consumer<? super THIS> cmd) {

2 个答案:

答案 0 :(得分:0)

您是否尝试调试代码?无论如何,尝试使用以下代码:

Option Explicit

Sub HowManyEmails() 
 Dim objOutlook As Object, objnSpace As Object, objFolder As Object
 Dim EmailCount As Integer
 Set objOutlook = CreateObject("Outlook.Application")
 Set objnSpace = objOutlook.GetNamespace("MAPI")

 On Error Resume Next
 Set objFolder = objnSpace.Folders("NoctalkSW").Folders("Inbox")
 If Err.Number <> 0 Then
  Err.Clear
  MsgBox "No such folder."
  Exit Sub
 End If

 EmailCount = objFolder.Items.Count
 Set objFolder = Nothing
 Set objOutlook = Nothing

 [B2].Value = EmailCount

 On Error Resume Next
 Set objFolder = objnSpace.Folders("NoctalkSW").Folders("Inbox").Folders("COMPLETED")
 If Err.Number <> 0 Then
  Err.Clear
  MsgBox "No such folder."
  Exit Sub
 End If

 EmailCount = objFolder.Items.Count
 Set objFolder = Nothing
 Set objnSpace = Nothing
 Set objOutlook = Nothing

 [B3].Value = EmailCount
End Sub

您也可以尝试迭代文件夹,请参阅How to: Enumerate Folders

答案 1 :(得分:0)

如果您想访问共享收件箱和子文件夹,请使用 GetSharedDefaultFolder Method

  

GetSharedDefaultFolder Method 返回表示指定用户的指定默认文件夹的MAPIFolder对象。此方法用于委派方案,其中一个用户已为一个或多个默认文件夹委派了另一个用户的访问权限。

     

代码示例

SmartyTpl::instance()->template_dir = array(HOME . '/style/web/' .$front. '/templates/', .HOME . '/style/admin/'. $back. '/templates/');
SmartyTpl::instance()->compile_dir = array(HOME . '/style/web/'.$front. '/templates_c/', .HOME . '/style/admin/'.$back. '/templates_c/');
SmartyTpl::instance()->config_dir = array(HOME . '/style/web/'.$front. '/configs/', HOME . '/style/admin/'.$back. '/configs/');
SmartyTpl::instance()->cache_dir = HOME . '/files/cache/';