Kā izdrukāt visu aizņemto tikšanos sarakstu noteiktā datumu diapazonā, izmantojot Outlook VBA

Kopīgot tūlīt:

Šis raksts iemācīs jums vienkāršu metodi, kā izdrukāt visu tikšanos sarakstu, kuras tiek rādītas kā “Aizņemtas” un ieplānotas noteiktā datumu diapazonā.

Ir diezgan vienkārši pārskatīt visus kalendārus, lai atrastu visas aizņemtās tikšanās noteiktā datumu diapazonā. Varat vienkārši iestatīt meklēšanas tvērumu uz “Visi kalendāra vienumi”. Pēc tam meklējiet tikšanās ar “Rādīt laiku kā”, kas ir vienāds ar “Aizņemts”, un noteiktā sākuma un beigu datumā. Taču šādā veidā, plānojot izdrukāt atrastās tikšanās un dodoties uz “Fails” > “Drukāt”, varat redzēt, ka ir pieejams tikai “Piezīmes stils”. Tas nozīmē, ka sarakstā atrastās tikšanās nevar izdrukāt. Tātad, ja vēlaties izdrukāt šādu tikšanos sarakstu, varat izmantot šo metodi.

Atrastajām tikšanām pieejams tikai piezīmju stils

Izdrukājiet visu aizņemto tikšanos sarakstu noteiktā datumu diapazonā

  1. Sākumā palaidiet Outlook VBA redaktoru, izmantojot “Alt + F11”.
  2. Pēc tam uznirstošajā logā “Microsoft Visual Basic for Applications” pievienojiet atsauci uz “MS Excel Object Library” saskaņā ar “Kā pievienot objektu bibliotēkas atsauci VBA valodā".
  3. Pēc tam modulī ievietojiet šādu VBA kodu.
Dim dStart, dEnd As Date
Dim objExcelApp As Excel.Application
Dim objExcelWorkbook As Excel.Workbook
Dim objExcelWorksheet As Excel.Worksheet

Sub PrintListOfAllBusyAppointments()
    Dim objStore As Store
    Dim objFolder As Folder
 
    dStart = InputBox("Enter the start date:", , Date)
    dEnd = InputBox("Enter the end date:", , Date + 30)
 
    Set objExcelApp = CreateObject("Excel.Application")
    Set objExcelWorkbook = objExcelApp.Workbooks.Add
    Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
    objExcelApp.Visible = True
 
    With objExcelWorksheet
         .Cells(1, 1) = "Subject"
         .Cells(1, 1).Font.Bold = True
         .Cells(1, 2) = "Location"
         .Cells(1, 2).Font.Bold = True
         .Cells(1, 3) = "Start"
         .Cells(1, 3).Font.Bold = True
         .Cells(1, 4) = "End"
         .Cells(1, 4).Font.Bold = True
         .Cells(1, 5) = "In Folder"
         .Cells(1, 5).Font.Bold = True
    End With
 
    For Each objStore In Application.Session.Stores
        For Each objFolder In objStore.GetRootFolder.Folders
            If objFolder.DefaultItemType = olAppointmentItem Then
               Call ProcessFolders(objFolder)
            End If
        Next
    Next
 
    objExcelWorksheet.Columns("A:E").AutoFit
    objExcelWorksheet.PrintOut
    objExcelWorkbook.Close False
    objExcelApp.Quit
End Sub

Sub ProcessFolders(ByVal objCurFolder As Folder)
    Dim strFilter As String
    Dim objItems As Outlook.Items
    Dim objRestrictedItems As Outlook.Items
    Dim objAppointment As AppointmentItem
    Dim nLastRow As Integer
    Dim objSubFolder As Folder
 
    Set objItems = objCurFolder.Items
    objItems.IncludeRecurrences = True
    objItems.Sort "[Start]"
 
    'Get the appointments in the specific date range
    strFilter = "[Start] >= " & Chr(34) & dStart & " 00:00 AM" & Chr(34) & " AND [End] <= " & Chr(34) & dEnd & " 11:59 PM" & Chr(34)
    Set objRestrictedItems = objItems.Restrict(strFilter)

    For Each objAppointment In objRestrictedItems
        If objAppointment.BusyStatus = olBusy Then
           nLastRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
 
           With objExcelWorksheet
                .Range("A" & nLastRow) = objAppointment.Subject
                .Range("B" & nLastRow) = objAppointment.Location
                .Range("C" & nLastRow) = objAppointment.Start
                .Range("D" & nLastRow) = objAppointment.End
                .Range("E" & nLastRow) = objCurFolder.FolderPath
           End With
        End If
    Next

    'Process all subfolders recursively
    If objCurFolder.Folders.Count > 0 Then
       For Each objSubFolder In objCurFolder.Folders
           Call ProcessFolders(objSubFolder)
       Next
    End If
End Sub

VBA kods - izdrukājiet visu aizņemto tikšanos sarakstu noteiktā datumu diapazonā

  1. Vēlāk noklikšķiniet uz pirmās apakšprogrammas un nospiediet taustiņa “F5” taustiņu.
  2. Pēc tam jums būs jānorāda datumu diapazons, lai meklētu tikšanās.Norādiet datumu diapazonu
  3. Pēc tam noklikšķiniet uz “OK”, lai turpinātu makro.
  4. Visbeidzot, kad makro būs pabeigts, tiks izdrukāts aizņemto tikšanos saraksts iepriekš noteiktā datumu diapazonā visās kalendāra mapēs, kā parādīts zemāk esošajā ekrānuzņēmumā.Izdrukāts visu aizņemto tikšanos saraksts noteiktā datumu diapazonā

Cīnīties ar traucējošām perspektīvām korupcijām

Ja programma Outlook vienmēr ir aizvērta nepareizi, vēlāk var rasties daudz problēmu. Starp tiem vissliktākais ir Outlook faila bojājums. Ja nevēlaties zaudēt datus, jums jāizmanto PST labošanas rīks, piemēram, DataNumen Outlook Repair. Tas spēj atgūt maksimālos datus no bojāta Outlook fails.

Autora ievads:

Šērlija Džana ir datu atkopšanas eksperte DataNumen, Inc., kas ir pasaules līderis datu atkopšanas tehnoloģiju, tostarp sql labot 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.