Kā ātri saskaitīt visus uzdevumus pēc statusa programmā Outlook

Kopīgot tūlīt:

Uzdevumiem var būt pieci statusi — “Nav sākts”, “Procesā”, “Pabeigts”, “Gaida kādu citu” un “Atlikts”. Ja vēlaties ātri saskaitīt visus uzdevumus pēc statusa, varat izmantot šajā rakstā aprakstīto metodi.

Outlook atbalsta lietotājus, lai viņi varētu piešķirt statusu uzdevumiem vai atzīmētajiem vienumiem. Ir pieci statusi — attiecīgi “Nav sākts”, “Procesā”, “Pabeigts”, “Gaida kādu citu” un “Atlikts”. Iespējams, jūsu Outlook ir daudz uzdevumu, un tie ir dažādos statusos. Tagad, ja vēlaties saskaitīt visus uzdevumus pēc statusa, varat izmantot šo metodi.Uzdevuma statuss

Ātri saskaitiet visus uzdevumus pēc statusa

  1. Vispirms palaidiet Outlook VBA redaktoru, atsaucoties uzKā palaist VBA kodu programmā Outlook".
  2. Pēc tam VBA redaktorā iespējojiet atsauci uz “MS Excel objektu bibliotēku”, kā arī “MS Scripting Runtime” saskaņā ar “Kā pievienot objektu bibliotēkas atsauci VBA valodā".
  3. Pēc tam nokopējiet šo kodu neizmantotā 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 kods - uzskaitīt uzdevumus pēc statusa

  1. Pēc tam noklikšķiniet uz pirmās apakšprogrammas un nospiediet taustiņu “F5”.
  2. Pēc makro pabeigšanas uzreiz tiks parādīta jauna Excel darblapa, piemēram, zemāk redzamais ekrānuzņēmums. Tajā ir uzskaitīti dažādu statusu uzdevumi.Uzdevumu skaits dažādos statusos

Sargieties no kļūmēm ap Outlook

Ap Outlook ir ļoti daudz risku, tostarp vīrusi, cilvēku kļūdas, programmatūras kļūdas, kā arī aparatūras kļūmes utt. Tāpēc, ja nevēlaties zaudēt vērtīgos Outlook datus, jums visu laiku jāievēro piesardzība. Vienkārši sakot, e-pastos nekad nevajadzētu lejupielādēt nezināmus pielikumus vai aizdomīgas saites. Turklāt, ja iespējams, ieteicams saglabāt ievērojamu Outlook labošanas utilītu, piemēram, DataNumen Outlook Repair, nevis pilnībā paļauties uz iesūtnes labošanas rīks.

Autora ievads:

Šērlija Džana ir datu atkopšanas eksperte DataNumen, Inc., kas ir pasaules līderis datu atkopšanas tehnoloģiju, tostarp atgūt kv un perspektīvas remonta programmatūras produktus. Lai iegūtu vairāk informācijas, apmeklējiet vietni www.datanumen. Ar

Kopīgot tūlīt:

Komentāri ir slēgti.