我已经搜索了所有谷歌,并且我已经尝试了一些堆栈溢出的建议来实现结果,但它们似乎无法实现我的具体目标。想知道这里是否有人可以帮助我。
我在呼叫中心工作,每小时都会收到代理生产力数据的电子邮件,并开始进行大量的手工操作。如何获取宏来复制电子邮件正文并自动将其粘贴到Excel工作表?或者我可以每天运行它。
这是数据外观的示例
每小时生产力
我需要复制的具体数据:
Agent Login | Agent Name | Average Talk Time | Total Talk Time | Calls Answered | Total ACW
如果可能,我还希望能够包括生产力的日期和时间吗?在图片上,你将能够看到它的时间。 (上午8:00 - 上午9:00)
我真的很感激任何帮助。
提前致谢。
答案 0 :(得分:1)
我认为这应该可以做你想要的。
Sub Extract()
On Error Resume Next
Set myOlApp = Outlook.Application
Set mynamespace = myOlApp.GetNamespace("mapi")
Set myfolder = myOlApp.ActiveExplorer.CurrentFolder
Set xlobj = CreateObject("excel.application.14")
xlobj.Visible = True
xlobj.Workbooks.Add
xlobj.Worksheets("Sheet1").Name = "Statusmail"
'Set the header
xlobj.Range("a" & 1).Value = "Absender"
xlobj.Range("a" & 1).Font.Bold = "True"
xlobj.Range("b" & 1).Value = "Date"
xlobj.Range("b" & 1).Font.Bold = "True"
xlobj.Range("c" & 1).Value = "Task"
xlobj.Range("c" & 1).Font.Bold = True
xlobj.Range("d" & 1).Value = "Planed-date"
xlobj.Range("d" & 1).Font.Bold = True
xlobj.Range("e" & 1).Value = "deadline"
xlobj.Range("e" & 1).Font.Bold = True
xlobj.Range("f" & 1).Value = "finished"
xlobj.Range("f" & 1).Font.Bold = True
xlobj.Range("g" & 1).Value = "time effort"
xlobj.Range("g" & 1).Font.Bold = True
xlobj.Range("h" & 1).Value = "description"
xlobj.Range("h" & 1).Font.Bold = True
For i = 1 To myfolder.Items.Count
Set myitem = myfolder.Items(i)
msgtext = myitem.Body
xlobj.Range("a" & i + 1).Value = myitem.To
xlobj.Range("b" & i + 1).Value = myitem.ReceivedTime
xlobj.Range("c" & i + 1).Value = msgtext
Next
End Sub
答案 1 :(得分:0)
这里有一些代码可以帮助您入门,它处理所有选定的消息,因此只选择一条感兴趣的消息
它将邮件正文类型和正文文本打印到“即时窗口”
Public Sub exploreEmailMessage()
Dim currentItem As Object ' drag "currentItem" onto "Watches" window, or use: right-click ... Add Watch
For Each currentItem In Application.ActiveExplorer.Selection ' check Watches window after this line is executed
Stop
If currentItem.Class = olMail Then
Debug.Print "************************************"
Debug.Print currentItem.ReceivedTime
Debug.Print "************************************"
Debug.Print Array("Unspecified", "Plain", "HTML", "RichText")(currentItem.BodyFormat)
Debug.Print "************************************"
Debug.Print currentItem.Body
Debug.Print "************************************"
Debug.Print currentItem.HTMLBody
Debug.Print "************************************" ' copy text in "immediate window" and paste into text editor for analysis
End If
Next
End Sub