Ինչպես տպել բոլոր զբաղված հանդիպումների ցանկը կոնկրետ ամսաթվերի միջակայքում Outlook VBA-ի միջոցով

Կիսվել հիմա ՝

Այս հոդվածը կսովորեցնի ձեզ հեշտ մեթոդ տպելու բոլոր այն հանդիպումների ցանկը, որոնք ցուցադրվում են որպես «Զբաղված» և նախատեսված են որոշակի ամսաթվերի միջակայքում:

Բավականին հեշտ է շրջանաձև թերթել բոլոր օրացույցները՝ որոշակի ամսաթվային միջակայքում գտնվող բոլոր զբաղված հանդիպումները գտնելու համար: Կարող եք պարզապես որոնման շրջանակը սահմանել «Բոլոր օրացույցի տարրերը»: Այնուհետև, «Ցույց տալ ժամանակը որպես» որոնման հանդիպումները հավասար են «Զբաղված» որոնմանը և գտնվում են որոշակի մեկնարկի և ավարտի ամսաթվերի սահմաններում: Սակայն, այս կերպ, երբ մտադիր եք տպել գտնված հանդիպումները և անցնում եք «Ֆայլ» > «Տպել», կարող եք տեսնել, որ հասանելի է միայն «Հուշագրի ոճը»: Սա նշանակում է, որ չեք կարող տպել գտնված հանդիպումները ցուցակում: Այսպիսով, եթե ցանկանում եք տպել նման հանդիպումների ցուցակը, կարող եք օգտագործել հետևյալ եղանակը:

Գտնված հանդիպումների համար հասանելի է միայն Memo Style-ը

Տպեք բոլոր զբաղված հանդիպումների ցանկը կոնկրետ ամսաթվերի միջակայքում

  1. Հենց սկզբում գործարկեք Outlook VBA խմբագրիչը «Alt + F11» միջոցով:
  2. Այնուհետև, «Microsoft Visual Basic for Applications» պատուհանում ավելացրեք «MS Excel Object Library» հղումը՝ համաձայն «Ինչպես ավելացնել օբյեկտային գրադարանի հղում VBA-ում".
  3. Դրանից հետո մոդուլի մեջ դրեք հետևյալ VBA կոդը.
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 - Տպեք բոլոր զբաղված հանդիպումների ցանկը կոնկրետ ամսաթվերի միջակայքում

  1. Ավելի ուշ սեղմեք առաջին ենթածրագրի մեջ և սեղմեք «F5» կոճակը:
  2. Հաջորդը, ձեզանից կպահանջվի նշել հանդիպումների որոնման ամսաթվերի միջակայքը:Նշեք Ամսաթիվը
  3. Այնուհետև սեղմեք «OK»՝ մակրոը շարունակելու համար:
  4. Վերջապես, երբ մակրոներն ավարտվեն, բոլոր օրացույցային թղթապանակներում նախապես սահմանված ժամկետների միջակայքում զբաղված հանդիպումների ցանկը կտպվի, ինչպես ցույց է տրված ստորև ներկայացված սքրինշոթում:Բոլոր զբաղված հանդիպումների տպագիր ցուցակը կոնկրետ ամսաթվերի միջակայքում

Նկատի ունեցեք անհանգստացնող հեռանկարային կոռուպցիա

Եթե ​​ձեր Outlook-ը միշտ փակ է ոչ պատշաճ ձևով, հետագայում կարող եք բազմաթիվ խնդիրների հանդիպել: Դրանց թվում Outlook ֆայլի կոռումպացված լինելը ամենավատն է: Եթե ​​դուք չեք ցանկանում կորցնել ձեր տվյալները, դուք պետք է օգտագործեք PST ամրագրման գործիք, օրինակ DataNumen Outlook Repair. Այն կարող է հետ ստանալ առավելագույն տվյալները վնասված Outlook- ը ֆայլը.

Հեղինակի ներածություն.

Shirley Zhang- ը տվյալների վերականգման փորձագետ է DataNumen, Inc., որը տվյալների վերականգման տեխնոլոգիաների համաշխարհային առաջատարն է, այդ թվում sql ֆիքս և հեռանկարների նորոգման ծրագրակազմի արտադրանքները: Լրացուցիչ տեղեկությունների համար այցելեք www.datanumen.com

Կիսվել հիմա ՝

Comments փակվում են: