Outlook Express VBA сохраняет вложение на жестком диске в определенную папку, отличную от «моей папки документов»

4345
ploom

Я нашел макрос, который сохраняет вложение из электронного письма в Outlook, и в этом аспекте он работает довольно хорошо, но сохраняет его в папке «мой документ»

Я хотел бы, чтобы он сохранял его в другой папке, которая имеет совершенно другой путь, однако у меня возникают проблемы с тем, чтобы увидеть, как работает код, который делает это, и, следовательно, я не могу изменить его

Текущий путь к папке с моими документами: C: \ Users \ me \ Documents \ OLAttachments, но должен быть Y: \ work_network \ me \ outlook-file.

Текущий код у меня есть

Public Sub SaveAttachments()  Dim objOL As Outlook.Application Dim objMsg As Outlook.MailItem 'Object Dim objAttachments As Outlook.Attachments Dim objSelection As Outlook.Selection Dim i As Long Dim lngCount As Long Dim strFile As String Dim strFolderpath As String Dim strDeletedFiles As String  ' Get the path to your My Documents folder strFolderpath = CreateObject("WScript.Shell").SpecialFolders(16) On Error Resume Next  ' Instantiate an Outlook Application object. Set objOL = CreateObject("Outlook.Application")  ' Get the collection of selected objects. Set objSelection = objOL.ActiveExplorer.Selection  ' Set the Attachment folder. strFolderpath = strFolderpath & "\OLAttachments\"  ' Check each selected item for attachments. For Each objMsg In objSelection  Set objAttachments = objMsg.Attachments lngCount = objAttachments.Count  If lngCount > 0 Then For i = lngCount To 1 Step -1  ' Get the file name. strFile = Left(objAttachments.Item(i).FileName, Len(stry) - 4) & Format(Date, "DDMMYY") & ".xls"  ' Combine with the path to the Temp folder. strFile = strFolderpath & strFile  ' Save the attachment as a file. objAttachments.Item(i).SaveAsFile strFile  Next i End If  Next  ExitSub:  Set objAttachments = Nothing Set objMsg = Nothing Set objSelection = Nothing Set objOL = Nothing End Sub 

Я не очень понимаю, как работает эта линия

strFolderpath = CreateObject("WScript.Shell").SpecialFolders(16) 

И у меня есть проблемы, чтобы адаптировать его к тому, что мне нужно.

Может ли кто-нибудь помочь с этим? большое спасибо

0
Ну, ты нашел макрос. Что вы пытались изменить? Как это не сработало? Что это сделало? Что ты хотел это сделать? Raystafarian 7 лет назад 0
изменение «Установить папку вложений. strFolderpath = strFolderpath & "\ OLAttachments \" меняется на strFolderpath = "Y: \ work_network \ me \ outlook-file" bvaughn 7 лет назад 0
Ну, я пробовал smtg как strFolderpath = CreateObject ("WScript.Shell"). GetFolderPath ("Y: \ work_network \ me \ outlook-file") и напрямую strFolderpath = "Y: \ work_network \ me \ outlook-file"), но оба не работал Я не очень разбираюсь в VBA, поэтому я отправился на поиски предварительно написанного кода, ха-ха. Ну, я только хотел изменить конечную папку, в которой сохранено мое вложение, но я не знаю, как манипулировать CreateObject ("WScript.Shell" ) структура Может быть, путь должен быть совершенно другим, но я не знаю, как это сделать. ploom 7 лет назад 0
1 - Поместите опцию Explicit в верхней части вашего кода. Во вкладке «Инструменты | Параметры | Редактор» есть настройка «Требуется объявление переменной». 2 - Вы не можете отлаживать, когда On Error Resume Next используется без разбора. Убери это. Любое из этих двух действий показало бы, что переменная stry неизвестна. Ответ, предоставленный thims, должен быть правильным ответом на ваш вопрос. niton 7 лет назад 0

1 ответ на вопрос

1
thims

В указанной строке указывается путь к специальной папке «Мои документы». Вам просто нужно заменить эту строку на:

strFolderpath = "Y:\work_network\me\outlook-file\" 

и полностью удалите эту строку:

strFolderpath = strFolderpath & "\OLAttachments\" 
Я попробовал это, но это не работает, я ничего не вижу в своей папке и не вижу сообщений об ошибках: / ploom 7 лет назад 0
Если он работает с «Моими документами», он должен работать с этим путем. Попробуйте отладить ваш скрипт. thims 7 лет назад 0