Cum să numărați rapid toate sarcinile în funcție de stare în Outlook

Distribuie acum:

Sarcinile pot avea cinci stări – „Neînceput”, „În curs”, „Finalizat”, „În așteptarea altcuiva” și „Amânat”. Dacă doriți să numărați rapid toate sarcinile după stare, puteți utiliza metoda prezentată în acest articol.

Outlook permite utilizatorilor să atribuie status activităților sau elementelor semnalizate. Există cinci statusuri - respectiv „Neînceput”, „În curs”, „Finalizat”, „În așteptarea altcuiva” și „Amânat”. Poate că aveți un număr mare de activități în Outlook și acestea se află în statusuri diferite. Acum, dacă doriți să numărați toate activitățile după status, puteți utiliza următoarea metodă.Starea sarcinii

Numărați rapid toate sarcinile în funcție de stare

  1. În primul rând, lansați editorul Outlook VBA făcând referire la „Cum să rulați codul VBA în Outlook".
  2. Apoi, în editorul VBA, activați referința la „MS Excel Object Library”, precum și la „MS Scripting Runtime” conform „Cum se adaugă o referință la o bibliotecă de obiecte în VBA".
  3. Apoi, copiați următorul cod într-un modul neutilizat.
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

Cod VBA - Numărați sarcinile în funcție de stare

  1. După aceea, faceți clic în prima subrutină și apăsați tasta „F5”.
  2. Imediat, când macrocomandă se finalizează, se va afișa o nouă foaie de lucru Excel, ca în captura de ecran de mai jos. Conține numărul de sarcini în diferite stări.Numărul de sarcini în diferite stări

Atenție la capcanele din jurul Outlook

Există o mare cantitate de riscuri în jurul Outlook, inclusiv viruși, erori umane, erori software, precum și defecțiuni hardware etc. Prin urmare, dacă nu doriți să vă pierdeți datele valoroase din Outlook, trebuie să fiți precaut tot timpul. Mai simplu spus, nu ar trebui să descărcați niciodată atașamente necunoscute sau link-uri suspecte în e-mailuri. În plus, dacă este posibil, este recomandabil să păstrați un utilitar remarcabil de remediere Outlook, cum ar fi DataNumen Outlook Repair, în vecinătate, în loc să se bazeze total pe instrument de reparare inbox.

Introducerea autorului:

Shirley Zhang este expertă în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv recupera sql și produse software de reparații Outlook. Pentru mai multe informații vizitați www.datanumen.com

Distribuie acum:

Comentariile sunt închise.