Slik teller du raskt alle oppgaver etter status i Outlook

Oppgaver kan ha fem statuser – «Ikke Started”, “Pågår”, “Fullført”, “Venter på noen andre” og “Utsatt”. Hvis du raskt vil telle alle oppgaver etter status, kan du bruke måten introdusert i denne artikkelen.

Outlook støtter brukere til å tildele status til oppgavene eller flaggede elementer. Det er fem statuser - henholdsvis "Ikke Started”, “Pågår”, “Fullført”, “Venter på noen andre” og “Utsatt”. Kanskje du har en stor mengde oppgaver i Outlook, og de er i forskjellige statuser. Nå, hvis du ønsker å telle alle oppgavene etter status, kan du bruke følgende måte.Oppgavestatus

Tell raskt alle oppgaver etter status

  1. Start først Outlook VBA editor ved å referere til "Hvordan kjøre VBA-kode i Outlook".
  2. Aktiver deretter referansen til "MS Excel Object Lib. i VBA-editoren".rary" samt "MS Scripting Runtime" i henhold til "Hvordan legge til et objekt Library Referanse i VBA".
  3. Deretter kopierer du følgende kode inn i en ubrukt 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-kode - Tell oppgaver etter status

  1. Klikk deretter på den første subrutinen og trykk "F5"-tasten.
  2. Med en gang, når makroen er fullført, vises et nytt Excel-regneark, som skjermbildet nedenfor. Den inneholder tellinger av oppgaver i forskjellige statuser.Antall oppgaver i forskjellige statuser

Pass på fallgruvene rundt Outlook

Det er en stor mengde risikoer rundt Outlook, inkludert virus, menneskelige feil, programvarefeil så vel som maskinvarefeil osv. Derfor, hvis du ikke vil miste dine verdifulle Outlook-data, må du være forsiktig hele tiden. Enkelt sagt bør du aldri laste ned ukjente vedlegg eller mistenkelige lenker i e-postene. Dessuten, hvis mulig, er det tilrådelig å beholde et bemerkelsesverdig Outlook-fixverktøy, som DataNumen Outlook Repair, i nærheten, i stedet for å stole helt på verktøy for reparasjon av innboks.

Forfatterintroduksjon:

Shirley Zhang er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert gjenopprette sql og Outlook-reparasjonsprodukter. For mer informasjon besøk www.datanumen. Med

Kommentarer er stengt.