Τρόπος γρήγορης μέτρησης όλων των εργασιών ανά κατάσταση στο Outlook

Κοινή χρήση τώρα:

Οι εργασίες μπορούν να έχουν πέντε καταστάσεις – «Δεν έχει ξεκινήσει», «Σε εξέλιξη», «Ολοκληρώθηκε», «Αναμονή για κάποιον άλλο» και «Αναβλήθηκε». Εάν θέλετε να μετρήσετε γρήγορα όλες τις εργασίες κατά κατάσταση, μπορείτε να χρησιμοποιήσετε τον τρόπο που παρουσιάζεται σε αυτό το άρθρο.

Το Outlook υποστηρίζει τους χρήστες να αντιστοιχίζουν κατάσταση στις εργασίες ή στα στοιχεία με σημαία. Υπάρχουν πέντε καταστάσεις - αντίστοιχα "Δεν έχει ξεκινήσει", "Σε εξέλιξη", "Ολοκληρώθηκε", "Αναμονή για κάποιον άλλο" και "Αναβλήθηκε". Ίσως έχετε πολλές εργασίες στο Outlook σας και βρίσκονται σε διαφορετικές καταστάσεις. Τώρα, αν θέλετε να μετρήσετε όλες τις εργασίες κατά κατάσταση, μπορείτε να χρησιμοποιήσετε τον ακόλουθο τρόπο.Κατάσταση εργασιών

Γρήγορη καταμέτρηση όλων των εργασιών κατά κατάσταση

  1. Αρχικά, ξεκινήστε τον επεξεργαστή Outlook VBA αναφερόμενος στο "Τρόπος εκτέλεσης κώδικα VBA στο Outlook".
  2. Στη συνέχεια, στον επεξεργαστή VBA, ενεργοποιήστε την αναφορά στο "MS Excel Object Library" καθώς και στο "MS Scripting Runtime" σύμφωνα με το "Πώς να προσθέσετε μια αναφορά βιβλιοθήκης αντικειμένων σε VBA".
  3. Στη συνέχεια, αντιγράψτε τον ακόλουθο κώδικα σε μια μονάδα που δεν χρησιμοποιείται.
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 - Καταμέτρηση εργασιών κατά κατάσταση

  1. Στη συνέχεια, κάντε κλικ στην πρώτη υπορουτίνα και πατήστε το πλήκτρο "F5".
  2. Μόλις ολοκληρωθεί η μακροεντολή, θα εμφανιστεί ένα νέο φύλλο εργασίας του Excel, όπως το παρακάτω στιγμιότυπο οθόνης. Περιέχει τον αριθμό των εργασιών σε διαφορετικές καταστάσεις.Καταμέτρηση εργασιών σε διαφορετικές καταστάσεις

Προσοχή στις παγίδες γύρω από το Outlook

Υπάρχουν πολλοί κίνδυνοι γύρω από το Outlook, συμπεριλαμβανομένων ιών, ανθρώπινων σφαλμάτων, βλαβών λογισμικού, καθώς και βλαβών υλικού κ.λπ. Επομένως, εάν δεν θέλετε να χάσετε τα πολύτιμα δεδομένα του Outlook, πρέπει να είστε προσεκτικοί όλη την ώρα. Με απλά λόγια, δεν πρέπει ποτέ να κατεβάζετε άγνωστα συνημμένα ή ύποπτους συνδέσμους στα μηνύματα ηλεκτρονικού ταχυδρομείου. Επιπλέον, αν είναι δυνατόν, είναι σκόπιμο να διατηρήσετε ένα αξιόλογο βοηθητικό πρόγραμμα επιδιόρθωσης του Outlook, όπως DataNumen Outlook Repair, σε κοντινή απόσταση, αντί να βασίζεστε πλήρως στο εργαλείο επισκευής εισερχομένων.

Εισαγωγή συγγραφέα:

Η Shirley Zhang είναι ειδικός ανάκτησης δεδομένων στο DataNumen, Inc., η οποία είναι ο παγκόσμιος ηγέτης στις τεχνολογίες ανάκτησης δεδομένων, συμπεριλαμβανομένων ανάκτηση sql και προϊόντα λογισμικού επισκευής προοπτικών. Για περισσότερες πληροφορίες επισκεφθείτε www.datanumen.com

Κοινή χρήση τώρα:

Τα σχόλια είναι κλειστά.