Cách đếm nhanh tất cả các nhiệm vụ theo trạng thái trong Outlook của bạn

Chia sẻ ngay bây giờ:

Nhiệm vụ có thể có năm trạng thái – “Chưa bắt đầu”, “Đang tiến hành”, “Đã hoàn thành”, “Đang chờ người khác” và “Hoãn lại”. Nếu bạn muốn nhanh chóng đếm tất cả nhiệm vụ theo trạng thái, bạn có thể sử dụng phương pháp được giới thiệu trong bài viết này.

Outlook hỗ trợ người dùng gán trạng thái cho các nhiệm vụ hoặc mục được gắn cờ. Có năm trạng thái – lần lượt là “Chưa bắt đầu”, “Đang tiến hành”, “Đã hoàn thành”, “Đang chờ người khác” và “Đã hoãn”. Có thể bạn có rất nhiều nhiệm vụ trong Outlook và chúng ở các trạng thái khác nhau. Bây giờ, nếu bạn muốn đếm tất cả các nhiệm vụ theo trạng thái, bạn có thể sử dụng cách sau.Trạng thái nhiệm vụ

Đếm nhanh tất cả các nhiệm vụ theo trạng thái

  1. Trước hết, hãy khởi chạy trình soạn thảo Outlook VBA bằng cách tham khảo “Cách chạy mã VBA trong Outlook của bạn".
  2. Tiếp theo, trong trình soạn thảo VBA, hãy bật tham chiếu đến “Thư viện đối tượng MS Excel” cũng như “Thời gian chạy tập lệnh MS” theo hướng dẫn trong “Cách thêm tham chiếu thư viện đối tượng trong VBA".
  3. Tiếp theo, sao chép đoạn mã sau vào một mô-đun không sử dụng.
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

Mã VBA - Đếm tác vụ theo trạng thái

  1. Sau đó, nhấp vào chương trình con đầu tiên và nhấn phím “F5”.
  2. Ngay lập tức, khi macro hoàn tất, một bảng tính Excel mới sẽ hiển thị, như ảnh chụp màn hình bên dưới. Nó chứa số lượng nhiệm vụ ở các trạng thái khác nhau.Số lượng nhiệm vụ ở các trạng thái khác nhau

Cảnh giác với những cạm bẫy xung quanh Outlook

Có rất nhiều rủi ro xung quanh Outlook, bao gồm vi-rút, lỗi của con người, lỗi phần mềm cũng như lỗi phần cứng, v.v. Do đó, nếu không muốn mất dữ liệu Outlook quý giá của mình, bạn phải luôn thận trọng. Nói một cách đơn giản, bạn không bao giờ nên tải xuống các tệp đính kèm không xác định hoặc các liên kết đáng ngờ trong email. Ngoài ra, nếu có thể, nên giữ lại một tiện ích sửa lỗi Outlook đáng chú ý, như DataNumen Outlook Repair, ở vùng lân cận, thay vì hoàn toàn dựa vào công cụ sửa chữa hộp thư đến.

Giới thiệu tác giả:

Shirley Zhang là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm phục hồi sql và các sản phẩm phần mềm sửa chữa triển vọng. Để biết thêm thông tin, hãy truy cập www.datanumennăm

Chia sẻ ngay bây giờ:

Được đóng lại.