Vba 按一年中的月份统计电子邮件
我修改了我的搜索电子邮件代码以计数Vba 按一年中的月份统计电子邮件,vba,excel,outlook,Vba,Excel,Outlook,我修改了我的搜索电子邮件代码以计数 Public Sub mycounter() Dim outlookapp Dim olns As Outlook.Namespace Dim Fldr As Outlook.MAPIFolder Dim olMail As Object 'Dim olMail As Outlook.MailItem Dim myTasks Dim projIDsearch As String Dim myrecipient As Outlook.Recipient Dim
Public Sub mycounter()
Dim outlookapp
Dim olns As Outlook.Namespace
Dim Fldr As Outlook.MAPIFolder
Dim olMail As Object
'Dim olMail As Outlook.MailItem
Dim myTasks
Dim projIDsearch As String
Dim myrecipient As Outlook.Recipient
Dim daysAgo As Long
Dim strfilter As String
Dim emailcount As Integer
Set outlookapp = CreateObject("Outlook.Application")
Set olns = outlookapp.GetNamespace("MAPI")
Set myrecipient = olns.CreateRecipient("SharedMailbox")
myrecipient.Resolve
Set Fldr = olns.GetSharedDefaultFolder(myrecipient, olFolderInbox)
daysAgo = CInt(ProjIDSearcher.ComboBox1.Text)
Set myTasks = Fldr.Items
Set myTasks = myTasks.Restrict("[ReceivedTime]>'" & Format(Date - daysAgo, "DDDDD HH:NN") & "'")
For Each olMail In myTasks
emailcount = emailcount + 1
'Exit For
Next
MsgBox "here it is:" & emailcount
End Sub
此代码按天计算。有没有办法从下拉列表中输入一个具体的日期
Set myTasks = myTasks.Restrict("[ReceivedTime]>'" & Format(Date - daysAgo, "DDDDD HH:NN") & "'")
现在,daysAgo正在从下拉列表中获取数值。我需要计算特定月份/年份的电子邮件数量,以便计算2017年1月或2016年5月收到的电子邮件数量。我无法测试您的代码,但允许检索给定日期范围内的项目的筛选器结构如下所示:
sFilter = ""
sFilter = "[ReceivedTime] >= '" & Format(StartDate, "ddddd h:nn AMPM") & "'"
sFilter = sFilter & " AND [ReceivedTime] <= '" & Format(EndDate, "ddddd h:nn AMPM") & "'"
sFilter=“”
sFilter=“[ReceivedTime]>=”&格式(起始日期,“DDD h:nn AMPM”)&“
sFilter=sFilter&“和[ReceivedTime]这一个要求你在A列中有你要检查的日期列表,它们之间没有空白单元格。这相当快。嗨。谢谢你的回复。我已经检查了链接,但我认为它不符合我的要求。我需要能够至少每个月计数,而不是每个日期/行。该示例中的数组也有“月”(.ReceivedTime)”中,因此您可以将代码更改为按月计数,而不仅仅是每天。