Hogyan nyomtathatja ki az összes elfoglalt találkozó listáját egy adott dátumtartományban az Outlook VBA segítségével

Oszd meg most:

Ez a cikk megtanít egy egyszerű módszerre, amellyel kinyomtathatja az összes „Foglalt” állapotú és egy adott dátumtartományba ütemezett találkozó listáját.

Nagyon könnyű végigpörgetni az összes naptárt, hogy megtalálja az összes elfoglalt találkozót egy adott dátumtartományban. Csak beállíthatja a keresési hatókört „Minden naptári tételre”. Ezután keresse meg a találkozókat úgy, hogy a „Show Time As” egyenlő a „Foglalt” kifejezéssel, és az adott s-en belültart dátum és befejezés dátuma. De ilyen módon, amikor ki akarja nyomtatni a talált találkozókat, és a „Fájl” > „Nyomtatás” menüpontra lép, láthatja, hogy csak a „Jegyzetstílus” áll rendelkezésre. Ez azt jelenti, hogy nem nyomtathatja ki a listában talált találkozókat. Tehát, ha ki szeretné nyomtatni az ilyen találkozók listáját, a következő módon járhat.

Csak a feljegyzés stílusa érhető el a talált találkozókhoz

Nyomtassa ki az összes elfoglalt találkozó listáját egy adott dátumtartományban

  1. A legelején indítsa el az Outlook VBA szerkesztőt az „Alt + F11” gombbal.
  2. Ezután a felugró „Microsoft Visual Basic for Applications” ablakban adja hozzá az „MS Excel Object Lib” hivatkozást.rary” a „Hogyan adjunk hozzá egy Object Lib-etrary Hivatkozás a VBA-ban".
  3. Ezután helyezze be a következő VBA kódot egy modulba.
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 kód – Nyomtassa ki az összes elfoglalt találkozó listáját egy adott dátumtartományban

  1. Később kattintson az első szubrutinra, és nyomja meg az „F5” gombot.
  2. Ezután meg kell adnia a dátumtartományt a találkozók kereséséhez.Adja meg a dátumtartományt
  3. Ezt követően kattintson az „OK” gombra a makró folytatásához.
  4. Végül, amikor a makró befejeződik, a rendszer kinyomtatja az összes naptármappában lévő elfoglalt találkozók listáját az előre meghatározott dátumtartományban, amint az az alábbi képernyőképen látható.Az összes elfoglalt találkozó nyomtatott listája adott dátumtartományban

Kezelje a zavaró Outlook korrupciót

Ha az Outlook mindig nem megfelelő módon van bezárva, később sok problémába ütközhet. Közülük az Outlook fájl sérült a legrosszabb. Ha nem szeretné elveszíteni az adatait, használjon PST-javító eszközt, mint pl DataNumen Outlook Repair. Maximum adatot tud visszanyerni innen sérült Outlook fájlt.

Szerző Bevezetés:

Shirley Zhang adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve sql javítás és outlook javítószoftver termékek. További információért látogasson el www.datanumen.com

Oszd meg most:

Hozzászólások lezárva.