Если вы хотите переместить все электронные письма в файле PST в определенную папку в другом файле PST, вы можете использовать метод, представленный в этой статье. Он научит вас, как использовать VBA, чтобы быстро его получить.
Иногда по некоторым причинам вам может потребоваться переместить все электронные письма в определенном файле PST в определенную папку в другом файле PST. В этом случае, если вы сделаете это вручную, это, безусловно, будет довольно хлопотно. Поэтому здесь мы научим быстрому методу, который будет использовать VBA для перебора всех папок в определенном файле PST и перемещения каждого электронного письма в определенную папку. Читайте дальше, чтобы получить подробные шаги и коды.
Пакетное перемещение всех электронных писем в файле Outlook PST в определенную папку
- В самом начале запустите приложение Outlook.
- Затем вы можете перейти на вкладку «Разработчик» и нажать кнопку «Visual Basic». Или нажмите сочетание клавиш «Alt + F11».
- Затем во всплывающем окне редактора VBA откройте неиспользуемый модуль или сразу вставьте новый.
- Затем скопируйте и вставьте следующие коды 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
- После этого измените уровень безопасности макросов Outlook на низкий.
- В конце концов вы можете запустить новый макрос, щелкнув значок «Выполнить» на панели инструментов или нажав клавишу «F5».
- Сразу все электронные письма из всех папок в определенной папке будут перемещены в заранее определенную папку в пакетном режиме.
Спасите свои данные PST вовремя
Если вы, к сожалению, страдаете Повреждение PST, что ты тогда будешь делать? В общем, ваша первая мысль должна как можно скорее вернуть скомпрометированные данные PST. Как обычно, самым простым способом является восстановление из актуальной резервной копии данных. Однако, если резервная копия данных сделана несколько недель назад, она может оказаться бесполезной. В этом случае у вас нет другого выбора, кроме как вернуться к мощному инструменту восстановления, такому как DataNumen Outlook Repair.
Об авторе:
Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая исправить мдф и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com

