Paano I-print ang Listahan ng Lahat ng Mga Abala na Appointment sa isang Tiyak na Hanay ng Petsa sa pamamagitan ng Outlook VBA

Ipamahagi ngayon:

Ituturo sa iyo ng artikulong ito ang isang madaling paraan upang i-print ang listahan ng lahat ng appointment na ipinapakita bilang "Abala" at nakaiskedyul sa isang partikular na hanay ng petsa.

Napakadaling i-loop sa lahat ng kalendaryo para mahanap ang lahat ng abalang appointment sa isang partikular na hanay ng petsa. Maaari mo lang itakda ang search scope sa “All Calendar Items”. Pagkatapos, maghanap ng mga appointment gamit ang “Show Time As” na katumbas ng “Busy” at sa loob ng partikular na petsa ng pagsisimula at pagtatapos. Ngunit, sa ganitong paraan, kapag balak mong i-print ang mga nahanap na appointment at pumunta sa “File” > “Print”, makikita mo na “Memo Style” lang ang available. Nangangahulugan ito na hindi mo maaaring i-print ang mga nahanap na appointment sa listahan. Kaya, kung gusto mong i-print ang listahan ng mga naturang appointment, maaari mong gamitin ang sumusunod na paraan.

Tanging Estilo ng Memo ang Magagamit para sa Mga Nahanap na Appointment

I-print ang Listahan ng Lahat ng Abalang Appointment sa isang Partikular na Hanay ng Petsa

  1. Sa simula pa lang, ilunsad ang editor ng VBA ng Outlook sa pamamagitan ng "Alt + F11".
  2. Pagkatapos, sa popup na window na “Microsoft Visual Basic for Applications”, idagdag ang reference sa “MS Excel Object Library” alinsunod sa “Paano Magdagdag ng Sanggunian sa Object Library sa VBA".
  3. Pagkatapos nito, ilagay ang sumusunod na VBA code sa isang module.
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 Code - I-print ang Listahan ng Lahat ng Abalang Appointment sa isang Partikular na Hanay ng Petsa

  1. Sa ibang pagkakataon, mag-click sa unang subroutine at pindutin ang "F5" key button.
  2. Susunod, kakailanganin mong tukuyin ang hanay ng petsa para sa paghahanap ng mga appointment.Tukuyin ang Saklaw ng Petsa
  3. Pagkatapos, i-click ang "OK" upang ipagpatuloy ang macro.
  4. Sa wakas, kapag natapos na ang macro, ang listahan ng mga abalang appointment sa paunang natukoy na hanay ng petsa sa lahat ng mga folder ng kalendaryo ay ipi-print, tulad ng ipinapakita sa screenshot sa ibaba.Naka-print na Listahan ng Lahat ng Abalang Appointment sa Partikular na Hanay ng Petsa

Harapin ang Nakakagambalang Outlook Corruption

Kung ang iyong Outlook ay palaging sarado sa hindi tamang paraan, maaari kang makatagpo ng maraming isyu sa ibang pagkakataon. Kabilang sa mga ito, ang Outlook file na nasira ay ang pinakamasama. Kung ayaw mong mawala ang iyong data, kailangan mong gumamit ng tool sa pag-aayos ng PST, tulad ng DataNumen Outlook Repair. Nagagawa nitong ibalik ang maximum na data mula sa nasira ang Outlook file.

Panimula ng May-akda:

Si Shirley Zhang ay isang dalubhasa sa pagbawi ng data sa DataNumen, Inc., na pinuno ng mundo sa mga teknolohiya sa pagbawi ng data, kasama ang sql ayusin at pananaw sa pag-aayos ng mga produktong software. Para sa karagdagang impormasyon pagbisita www.datanumen. Sa

Ipamahagi ngayon:

Mga komento ay sarado.