Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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_Email_Outlook - Fatal编程技术网

Vba 用于共享邮箱的Outlook跟踪器

Vba 用于共享邮箱的Outlook跟踪器,vba,email,outlook,Vba,Email,Outlook,我们使用一个共享outlook邮箱,我们每天收到1000封电子邮件,是否有任何宏可以向我们提供在什么时候回复的项目以及未回复的项目的详细信息。基本上,我们需要跟踪回复特定收件箱项目所需的时间。没有宏,但您可以自己编写。Outlook->工具->宏->Visual Basic编辑器 在VBA中,必须启动Outlook.MAPIFolder对象并将其连接到所需的邮箱 Dim f As MAPIFolder Dim olns As Outlook.NameSpace Set olns = Outlo

我们使用一个共享outlook邮箱,我们每天收到1000封电子邮件,是否有任何宏可以向我们提供在什么时候回复的项目以及未回复的项目的详细信息。基本上,我们需要跟踪回复特定收件箱项目所需的时间。

没有宏,但您可以自己编写。Outlook->工具->宏->Visual Basic编辑器

在VBA中,必须启动Outlook.MAPIFolder对象并将其连接到所需的邮箱

Dim f As MAPIFolder

Dim olns As Outlook.NameSpace
Set olns = Outlook.GetNamespace("MAPI")
Set f = olns.Folders("Mailbox - Name, Name")
Set f = f.Folders("Inbox")
如果要检查邮箱中的子文件夹,则需要执行以下操作:

Set f = f.Folders("Name of the subfolder")
然后您需要遍历这些项

Dim m As MailItem
Dim i As Long
i = 1
Do Until i > f.Items.Count
    If f.Items(i).Class = olMail Then
        Set m = f.Items(i)
    End If

    ' yada yada

    i = i + 1
    DoEvents
Loop
如何检测哪些已回复取决于您使用的Outlook版本。对于Outlook 2007,您可以使用。对于早期版本,您可以使用第三方加载项,例如,或者您可以使用比较m.LastModificationTime和m.CreationTime之类的方法

例如:

        If m.LastModificationTime - m.CreationTime < 0.1 Then
            n = n + 1
            Debug.Print m.subject
        End If
如果m.LastModificationTime-m.CreationTime<0.1,则
n=n+1
调试。打印m主题
如果结束
时间总是有一点点的偏离,所以你不能使用“=”,你必须检查差异是否真的很小


这可能会拾取转发的电子邮件以及回复的电子邮件;考虑一下这是否是你想要的。

没有宏,但你可以自己编写。Outlook->工具->宏->Visual Basic编辑器

在VBA中,必须启动Outlook.MAPIFolder对象并将其连接到所需的邮箱

Dim f As MAPIFolder

Dim olns As Outlook.NameSpace
Set olns = Outlook.GetNamespace("MAPI")
Set f = olns.Folders("Mailbox - Name, Name")
Set f = f.Folders("Inbox")
如果要检查邮箱中的子文件夹,则需要执行以下操作:

Set f = f.Folders("Name of the subfolder")
然后您需要遍历这些项

Dim m As MailItem
Dim i As Long
i = 1
Do Until i > f.Items.Count
    If f.Items(i).Class = olMail Then
        Set m = f.Items(i)
    End If

    ' yada yada

    i = i + 1
    DoEvents
Loop
如何检测哪些已回复取决于您使用的Outlook版本。对于Outlook 2007,您可以使用。对于早期版本,您可以使用第三方加载项,例如,或者您可以使用比较m.LastModificationTime和m.CreationTime之类的方法

例如:

        If m.LastModificationTime - m.CreationTime < 0.1 Then
            n = n + 1
            Debug.Print m.subject
        End If
如果m.LastModificationTime-m.CreationTime<0.1,则
n=n+1
调试。打印m主题
如果结束
时间总是有一点点的偏离,所以你不能使用“=”,你必须检查差异是否真的很小


这可能会拾取转发的电子邮件以及回复的电子邮件;考虑这是否是你想要的。

如果这仍然是实际的,我建议使用Excel的电源查询来跟踪对话。基本上,您只需按会话ID对项目列表进行汇总,然后计算每个会话的第一个和第二个项目的接收时间。确保按
接收时间
会话索引

对嵌套表进行排序。如果这仍然是实际情况,我建议使用Excel的Power查询来跟踪会话。基本上,您只需按会话ID对项目列表进行汇总,然后计算每个会话的第一个和第二个项目的接收时间。确保按
接收时间
会话索引
对嵌套表进行排序