Kuidas printida kõigi hõivatud kohtumiste loend konkreetses kuupäevavahemikus Outlook VBA kaudu

See artikkel õpetab teile lihtsat meetodit kõigi kohtumiste loendi printimiseks, mis on kuvatud kui „Hõivatud” ja mis on kavandatud kindlasse kuupäevavahemikku.

Kõikide kalendrite vahel ringi käimine, et leida kõik hõivatud kohtumised kindlas kuupäevavahemikus, on üsna lihtne. Saate lihtsalt otsinguulatuseks määrata „Kõik kalendriüksused“. Seejärel otsige kohtumisi, mille „Kuva aeg kui“ on võrdne „Hõivatud“ ja mis jäävad kindla algus- ja lõppkuupäeva piiresse. Kuid sel viisil, kui soovite leitud kohtumisi välja printida ja minna menüüsse „Fail“ > „Prindi“, näete, et saadaval on ainult „Memo stiil“. See tähendab, et te ei saa leitud kohtumisi loendist printida. Seega, kui soovite selliste kohtumiste loendi printida, saate kasutada järgmist viisi.

Leitud kohtumiste jaoks on saadaval ainult memo stiil

Printige kindlas kuupäevavahemikus kõigi hõivatud kohtumiste loend

  1. Kohe alguses käivitage Outlook VBA redaktor, kasutades "Alt + F11".
  2. Seejärel lisage hüpikaknas „Microsoft Visual Basic for Applications” viide „MS Excel Object Library” vastavalt jaotisele „Kuidas lisada VBA-s objektiteegi viidet".
  3. Pärast seda pange moodulisse järgmine VBA kood.
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 kood – printige kõigi hõivatud kohtumiste loend kindlas kuupäevavahemikus

  1. Hiljem klõpsake esimest alamprogrammi ja vajutage nuppu "F5".
  2. Järgmiseks peate määrama kohtumiste otsimise kuupäevavahemiku.Määrake kuupäevavahemik
  3. Seejärel klõpsake makro jätkamiseks nuppu "OK".
  4. Lõpuks, kui makro on lõppenud, prinditakse kõigi kalendrikaustade eelmääratletud kuupäevavahemikus hõivatud kohtumiste loend, nagu on näidatud alloleval ekraanipildil.Prinditud loend kõigist kindlas kuupäevavahemikus hõivatud kohtumistest

Võitlege häiriva Outlooki korruptsiooniga

Kui teie Outlook on alati valesti suletud, võib teil hiljem tekkida palju probleeme. Nende hulgas on rikutud Outlooki fail halvim. Kui te ei soovi oma andmeid kaotada, peate kasutama PST-parandustööriista, nt DataNumen Outlook Repair. See suudab tagasi saada maksimaalselt andmeid kahjustatud Outlook faili.

Autori sissejuhatus:

Shirley Zhang on andmete taastamise ekspert DataNumen, Inc., mis on maailmas juhtiv andmete taastamise tehnoloogiate, sealhulgas sql parandus ja Outlooki remonditarkvaratooted. Lisateabe saamiseks külastage www.datanumenCom

Kommentaarid on suletud.