თუ თქვენ ინახავთ გაგზავნილ წერილებს რამდენიმე საქაღალდეში და ახლა გსურთ დათვალოთ ყველა ეს გაგზავნილი წერილი თვეების მიხედვით, შეგიძლიათ წაიკითხოთ ეს სტატია. აქ წარმოგიდგენთ მის მისაღებად საკმაოდ სწრაფ გზას.
წინა სტატია - "როგორ სწრაფად დავთვალოთ შემომავალი წერილები თარიღის, თვის ან წლის მიხედვით Outlook VBA-ის საშუალებით”-მა გააზიარა ელ.ფოსტის თვეების მიხედვით დათვლის საშუალება. თუმცა, მას შეუძლია წერილების დამუშავება ერთ საქაღალდეში. თუ გსურთ ელფოსტის დათვლა რამდენიმე ან თუნდაც ყველა ფოსტის საქაღალდეში, უნდა გამოიყენოთ სხვა საშუალებები. ამგვარად, შემდეგში ჩვენ გაგიმხელთ სხვა ბევრად უფრო სწრაფ გზას.
დათვალეთ გაგზავნილი წერილები თვეების მიხედვით
- დასაწყისისთვის, შედით Outlook VBA რედაქტორზე "Alt + F11" საშუალებით.
- შემდეგ, ჩართეთ მითითება „MS Excel Object Library“ მიხედვით „როგორ დავამატო Object Library მითითება VBA-ში".
- ამის შემდეგ ჩადეთ შემდეგი VBA კოდი პროექტში ან მოდულში.
Dim objDictionary As Object
Sub CountSentMailsByMonth()
Dim objOutlookFile As Outlook.Folder
Dim objFolder As Outlook.Folder
Dim objExcelApp As Excel.Application
Dim objExcelWorkbook As Excel.Workbook
Dim objExcelWorksheet As Excel.Worksheet
Dim varMonths As Variant
Dim varItemCounts As Variant
Dim nLastRow As Integer
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objInbox = Outlook.Application.Session.GetDefaultFolder(olFolderInbox)
'Get the default Outlook data file
Set objOutlookFile = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Parent
For Each objFolder In objOutlookFile.Folders
If objFolder.DefaultItemType = olMailItem Then
Call ProcessFolders(objFolder)
End If
Next
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
Set objExcelWorkbook = objExcelApp.Workbooks.Add
Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
With objExcelWorksheet
.Cells(1, 1) = "Month"
.Cells(1, 2) = "Count"
End With
varMonths = objDictionary.Keys
varItemCounts = objDictionary.Items
For i = LBound(varMonths) To UBound(varMonths)
nLastRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
With objExcelWorksheet
.Cells(nLastRow, 1) = varMonths(i)
.Cells(nLastRow, 2) = varItemCounts(i)
End With
Next
objExcelWorksheet.Columns("A:B").AutoFit
End Sub
Sub ProcessFolders(ByVal objCurFolder As Outlook.Folder)
Dim i As Long
Dim objMail As Outlook.MailItem
Dim strMonth As String
For i = objCurFolder.Items.Count To 1 Step -1
If objCurFolder.Items(i).Class = olMail Then
Set objMail = objCurFolder.Items(i)
'Change to your own email address
If objMail.SenderEmailAddress = "you@datanumen.com" Then
strMonth = Format(Year(objMail.SentOn) & "-" & Month(objMail.SentOn), "YYYY/MM")
If objDictionary.Exists(strMonth) Then
objDictionary(strMonth) = objDictionary(strMonth) + 1
Else
objDictionary.Add strMonth, 1
End If
End If
End If
Next
End Sub
- შემდეგ გადაიტანეთ კურსორი პირველ ქვეპროგრამაში.
- ამის შემდეგ დააჭირეთ "F5" ამ მაკროს გასააქტიურებლად.
- მაშინვე გამოჩნდება Excel ფაილი, რომელიც შეიცავს ყოველთვიურად გაგზავნილი ელ.ფოსტის რაოდენობას, როგორც ეს ნაჩვენებია ქვემოთ მოცემულ ფიგურაში.
ნუ შეგეშინდებათ Outlook კორუფციის წინაშე
თქვენ შეიძლება შეშფოთდეთ PST-ის დაზიანებასთან შეხვედრისას. თუმცა, სინამდვილეში, ჯობია რაც შეიძლება მალე დამშვიდდე. როგორც ყველამ ვიცით, პანიკა უმწეოა და უფრო ქაოტურ და სერიოზულ პრობლემებამდეც კი მიგვიყვანს. თქვენ უნდა შეინარჩუნოთ სიმშვიდე, რათა გაითვალისწინოთ ზომები, როგორიცაა ფიქრი განახლებული გაქვთ თუ არა სარეზერვო ასლი და განიხილეთ როგორ PST შეკეთება – მივმართოთ თუ არა მესამე მხარის ინსტრუმენტს, როგორიცაა DataNumen Outlook Repair ან დაუკავშირდით შესაბამის პროფესიონალებს.
ავტორი შესავალი:
შირლი ჟანგი არის მონაცემთა აღდგენის ექსპერტი DataNumen, Inc., რომელიც მსოფლიო ლიდერია მონაცემთა აღდგენის ტექნოლოგიებში, მათ შორის მდფ-ის შეკეთება და Outlook სარემონტო პროგრამული პროდუქტები. დამატებითი ინფორმაციისთვის ეწვიეთ www.datanumen. ერთად

