将日期范围内的数据从outlook导出到excel
我在一些其他来源的帮助下修改并编写了下面的代码,使其正常工作,但由于outlook收件箱/文件夹中的电子邮件数量太多,完成此操作将花费太多时间。。。任何建议都将不胜感激将日期范围内的数据从outlook导出到excel,excel,date,outlook,export,subject,Excel,Date,Outlook,Export,Subject,我在一些其他来源的帮助下修改并编写了下面的代码,使其正常工作,但由于outlook收件箱/文件夹中的电子邮件数量太多,完成此操作将花费太多时间。。。任何建议都将不胜感激 Option Explicit Dim n As Long Sub Get_data() Dim olApp As Outlook.Application Dim olNS As Outlook.Namespace Dim olFolder As Outlook.MAPIFolder
Option Explicit
Dim n As Long
Sub Get_data()
Dim olApp As Outlook.Application
Dim olNS As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder
Dim Date1 As Date
Dim date2 As Date
Date1 = InputBox("enter start date in dd/mm/yyyy fomat", "dd/mm/yyyy")
date2 = InputBox("enter end date in dd/mm/yyyy fomat", "dd/mm/yyyy")
Set olApp = Outlook.Application
Set olNS = olApp.GetNamespace("MAPI")
Set olFolder = olNS.PickFolder
n = 2
Call Get_Emails(olFolder, Date1, date2)
Set olNS = Nothing
Set olFolder = Nothing
Set olApp = Nothing
Set olNS = Nothing
End Sub
Sub Get_Emails(olfdStart As Outlook.MAPIFolder, Date1, date2)
Dim olFolder As Outlook.MAPIFolder
Dim olObject As Object
Dim olMail As Outlook.MailItem
For Each olObject In olfdStart.Items
If TypeName(olObject) = "MailItem" Then
If olObject.ReceivedTime >= Date1 And olObject.ReceivedTime <= date2 Then
n = n + 1
Set olMail = olObject
'Sender email id
Cells(n, 1) = olMail.SenderName
'Email id
Cells(n, 2) = olMail.Subject
'Received Date
Cells(n, 3) = Int(olMail.ReceivedTime)
'Category
Cells(n, 5) = olMail.Categories
End If
End If
Next
Set olMail = Nothing
Set olFolder = Nothing
Set olObject = Nothing
End Sub
选项显式
长
子获取_数据()
Dim olApp作为Outlook.Application
将OLN设置为Outlook.Namespace
将文件夹设置为Outlook.MAPIFolder
Dim Date1作为日期
Dim date2作为日期
Date1=输入框(“在dd/mm/yyyy fomat中输入开始日期”,“dd/mm/yyyy”)
date2=输入框(“在dd/mm/yyyy fomat中输入结束日期”,“dd/mm/yyyy”)
设置olApp=Outlook.Application
Set olNS=olApp.GetNamespace(“MAPI”)
设置olFolder=olNS.PickFolder
n=2
呼叫获取电子邮件(文件夹,日期1,日期2)
设置olNS=Nothing
设置olFolder=Nothing
设置olApp=Nothing
设置olNS=Nothing
端接头
子获取电子邮件(olfdStart作为Outlook.MAPI文件夹,日期1,日期2)
将文件夹设置为Outlook.MAPIFolder
作为对象的Dim对象
以Outlook.MailItem的形式发送邮件
对于olfdStart.Items中的每个olObject
如果TypeName(olObject)=“MailItem”,则
如果olObject.ReceivedTime>=Date1,并且olObject.ReceivedTime只是为了添加到这个。。我尝试使用''''olobject.sort''Receivedtime',True'',但得到运行时错误91“对象变量或未设置块变量”