我们使用共享的 Outlook 邮箱,我们每天收到 1000 封电子邮件,是否有任何宏可以为我们提供何时回复的项目以及未回复的项目的详细信息。基本上,我们需要跟踪回复特定收件箱项目所花费的时间。
问问题
4358 次
2 回答
4
没有宏,但您可以编写自己的宏。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,您可以使用Outlook.PropertyAccessor。对于早期版本,您可以使用像Redemption这样的第三方加载项,或者您可以诉诸比较 m.LastModificationTime 和 m.CreationTime 之类的方法。
例如:
If m.LastModificationTime - m.CreationTime < 0.1 Then
n = n + 1
Debug.Print m.subject
End If
时间总会有一点点偏差,所以不能用“=”,要检查一下差别是不是真的很小。
这可能会提取转发的电子邮件以及回复的电子邮件;考虑这是否是您想要的。
于 2013-03-24T23:40:54.363 回答
0
如果这仍然是实际的,我建议使用 Excel 的 Power Query 来跟踪对话。基本上,您所需要的只是汇总您的项目列表,Conversation ID
然后获取Received Time
每个对话的第一个和第二个项目。确保按Received Time
或对嵌套表进行排序Conversation Index
。
于 2020-05-23T11:57:41.780 回答