Як пакетно перемістити всі електронні листи у файлі Outlook PST до певної папки через VBA

Поділитися зараз:

Якщо ви хочете перемістити всі електронні листи у файлі PST до певної папки іншого файлу PST, ви можете скористатися методом, представленим у цій статті. Це навчить вас користуватися VBA, щоб швидко її отримати.

Іноді з якихось причин може знадобитися перемістити всі електронні листи у певному файлі PST до певної папки іншого файлу PST. У цьому випадку, якщо ви зробите це вручну, це буде, безперечно, досить клопітно. Отже, тут ми навчимо швидкий метод, який використовуватиме VBA для прокручування всіх папок у певному PST-файлі та переміщення кожного повідомлення електронної пошти до певної папки. Прочитайте далі, щоб досягти детальних кроків і кодів.

Пакетне переміщення всіх електронних листів у файлі Outlook PST у певну папку

Пакетне переміщення всіх електронних листів у файлі Outlook PST у певну папку

  1. З самого початку запустіть програму Outlook.
  2. Потім ви можете перейти на вкладку «Розробник» і натиснути кнопку «Visual Basic». Або натисніть комбінації клавіш “Alt + F11”.
  3. Згодом у спливаючому вікні редактора VBA відкрийте не використовуваний модуль або прямо вставте новий.
  4. Далі скопіюйте та вставте наступні коди VBA в цей модуль.
Private Sub GetAllFolders()
    Dim objFolders As Outlook.Folders
    Dim objFolder As Outlook.Folder
 
    'Get all the folders in a specific PST file
    Set objFolders = Outlook.Application.Session.Folders("Personal").Folders
 
    For Each objFolder In objFolders
        Call MoveEmails(objFolder)
    Next
End Sub
 
Private Sub MoveEmails(ByVal objFolder As Outlook.Folder)
    Dim objTargetFolder As Outlook.Folder
    Dim objSubFolder As Outlook.Folder
    Dim i As Long
    Dim objMail As Outlook.MailItem
 
    'Get the specific destination folder
    'You can change it as per your case
    Set objTargetFolder = Outlook.Application.Session.Folders("John Smith").Folders("New")
 
    If objTargetFolder Is Nothing Then
       Set objTargetFolder = Outlook.Application.Session.Folders("John Smith").Folders.Add("New")
    End If
 
    'Move each emails in the folder to the destination folder
    For i = objFolder.Items.Count To 1 Step -1
        If objFolder.Items.Item(i).Class = olMail Then
           Set objMail = objFolder.Items.Item(i)
           objMail.Move objTargetFolder
        End If
    Next i
 
    'Process the subfolders in the folder recursively
    If (objFolder.Folders.Count > 0) Then
       For Each objSubFolder In objFolder.Folders
           Call MoveEmails(objSubFolder)
       Next
    End If
End Sub

Коди VBA - пакетне переміщення всіх електронних листів у файлі PST Outlook у певну папку

  1. Після цього змініть рівень захисту макросів Outlook на низький.
  2. Врешті-решт ви можете запустити новий макрос, натиснувши піктограму «Виконати» на панелі інструментів або натиснувши клавішу «F5».
  3. Одночасно всі електронні листи всіх папок у певній папці будуть переміщуватися до попередньо визначеної папки групами.

Вчасно врятуйте свої дані PST

Якщо ти, на жаль, страждаєш PST пошкодження, що ти тоді будеш робити? Загалом, ваша перша думка повинна якомога швидше повернути компрометовані дані PST. Як зазвичай, найпростіший спосіб - відновити за допомогою актуальної резервної копії даних. Однак якщо резервна копія даних має кілька тижнів, вона може виявитися марною. У цьому випадку вам не залишається нічого іншого, як повернутися до потужного інструменту відновлення, наприклад DataNumen Outlook Repair.

Вступ автора:

Ширлі Чжан - експерт із відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі виправлення mdf та перспективні програмні продукти для ремонту. Для отримання додаткової інформації відвідайте WWW.datanumen.com

Поділитися зараз:

Коментарі закриті.