Kako brzo prebrojati sve zadatke prema statusu u vašem Outlooku

Podijeli sada:

Zadaci mogu imati pet statusa – „Nije započeto“, „U tijeku“, „Završeno“, „Čeka nekog drugog“ i „Odgođeno“. Ako želite brzo prebrojati sve zadatke prema statusu, možete koristiti način predstavljen u ovom članku.

Outlook podržava korisnike da dodijele status zadacima ili označenim stavkama. Postoji pet statusa – „Nije započeto“, „U tijeku“, „Završeno“, „Čeka nekoga drugog“ i „Odgođeno“. Možda imate puno zadataka u Outlooku i oni su u različitim statusima. Sada, ako želite prebrojati sve zadatke prema statusu, možete koristiti sljedeći način.Status zadatka

Brzo prebrojite sve zadatke prema statusu

  1. Najprije pokrenite Outlook VBA uređivač prema "Kako pokrenuti VBA kod u vašem Outlooku".
  2. Zatim, u VBA editoru, omogućite referencu na "MS Excel Object Library" kao i "MS Scripting Runtime" prema "Kako dodati referencu biblioteke objekata u VBA".
  3. Zatim kopirajte sljedeći kod u neiskorišteni modul.
Dim objDictionary As New Scripting.Dictionary

Sub CountTasksByStatus()
    Dim objStore As Outlook.Store
    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 varStatuses As Variant
    Dim varTaskCounts As Variant
    Dim i As Integer
    Dim nLastRow As Integer
 
    'Count by Dictionary
    Set objDictionary = CreateObject("Scripting.Dictionary")
  
    'Process All Outlook data files
    For Each objStore In Application.Session.Stores
        Set objOutlookFile = objStore.GetRootFolder
        For Each objFolder In objOutlookFile.Folders
            If objFolder.DefaultItemType = olTaskItem Then
               Call ProcessTaskFolders(objFolder)
            End If
        Next
    Next
 
    'Export the counts to an Excel worksheet
    Set objExcelApp = CreateObject("Excel.Application")
    objExcelApp.Visible = True
    Set objExcelWorkbook = objExcelApp.Workbooks.Add
    Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
 
    With objExcelWorksheet
        .Cells(1, 1) = "Status"
        .Cells(1, 1).Font.Bold = True
        .Cells(1, 2) = "Task Count"
        .Cells(1, 2).Font.Bold = True
    End With
 
    varStatuses = objDictionary.Keys
    varTaskCounts = objDictionary.Items
 
    For i = LBound(varStatuses) To UBound(varStatuses)
        nLastRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
        With objExcelWorksheet
            .Cells(nLastRow, 1) = varStatuses(i)
            .Cells(nLastRow, 2) = varTaskCounts(i)
        End With
    Next
 
    objExcelWorksheet.Columns("A:B").AutoFit
End Sub

Sub ProcessTaskFolders(ByVal objCurFolder As Outlook.Folder)
    Dim objTask As Outlook.TaskItem
    Dim strStatus As String
    Dim objSubfolder As Outlook.Folder
 
    'Count tasks by status
    For Each objTask In objCurFolder.Items
        Select Case objTask.Status
               Case olTaskNotStarted
                    strStatus = "Not Started"
 
                    If objDictionary.Exists(strStatus) Then
                       objDictionary(strStatus) = objDictionary(strStatus) + 1
                    Else
                       objDictionary.Add strStatus, 1
                    End If
               Case olTaskInProgress
                    strStatus = "In Progress"
 
                    If objDictionary.Exists(strStatus) Then
                       objDictionary(strStatus) = objDictionary(strStatus) + 1
                    Else
                       objDictionary.Add strStatus, 1
                    End If
               Case olTaskComplete
                    strStatus = "Completed"
 
                    If objDictionary.Exists(strStatus) Then
                       objDictionary(strStatus) = objDictionary(strStatus) + 1
                    Else
                       objDictionary.Add strStatus, 1
                    End If
               Case olTaskWaiting
                    strStatus = "Waiting on someone else"
 
                    If objDictionary.Exists(strStatus) Then
                       objDictionary(strStatus) = objDictionary(strStatus) + 1
                    Else
                       objDictionary.Add strStatus, 1
                    End If
               Case olTaskDeferred
                    strStatus = "Deferred"
 
                    If objDictionary.Exists(strStatus) Then
                       objDictionary(strStatus) = objDictionary(strStatus) + 1
                    Else
                       objDictionary.Add strStatus, 1
                    End If
         End Select
    Next
 
    'Process all subfolders recursively
    If objCurFolder.Folders.Count > 0 Then
       For Each objSubfolder In objCurFolder.Folders
           Call ProcessTaskFolders(objSubfolder)
       Next
    End If
End Sub

VBA kod - Brojite zadatke prema statusu

  1. Nakon toga kliknite na prvu potprogram i pritisnite tipku “F5”.
  2. Odmah nakon dovršetka makronaredbe prikazat će se novi Excel radni list, kao na slici ispod. Sadrži brojanje zadataka u različitim statusima.Brojevi zadataka u različitim statusima

Čuvajte se zamki oko Outlooka

Postoji velika količina rizika koji okružuju Outlook, uključujući viruse, ljudske pogreške, softverske greške kao i hardverske kvarove, itd. Stoga, ako ne želite izgubiti svoje vrijedne Outlook podatke, morate biti oprezni cijelo vrijeme. Jednostavno rečeno, nikada ne biste trebali preuzimati nepoznate privitke ili sumnjive poveznice u e-porukama. Osim toga, ako je moguće, preporučljivo je zadržati izvanredan uslužni program za popravak Outlooka, kao što je DataNumen Outlook Repair, u blizini, umjesto da se potpuno oslanjate na alat za popravak inboxa.

Uvod za autora:

Shirley Zhang stručnjakinja je za oporavak podataka u DataNumen, Inc., koji je svjetski lider u tehnologijama za oporavak podataka, uključujući oporaviti sql i softverske proizvode za popravak Outlooka. Za više informacija posjetite www.datanumen.com

Podijeli sada:

Komentari su zatvoreni.