Я делаю это на своем сервере, каждую ночь я получаю электронное письмо с приложенным файлом Excel, которое автоматически пересылается на мой сервер, где этот код внешнего вида сохраняет вложение.Обратите внимание, что там есть пункт, чтобы убедиться, что файл получен от меня, и чтобы убедиться, что это файл Excel:
Private WithEvents olItems As Outlook.Items
Private Sub Application_Startup()
Dim objNS As Outlook.NameSpace
Set objNS = GetNamespace("MAPI")
Set olItems = objNS.GetDefaultFolder(olFolderInbox).Items
Set objNS = Nothing
End Sub
Private Sub olItems_ItemAdd(ByVal Item As Object)
Dim NewMail As Outlook.MailItem
Dim Atts As Attachments
Dim Att As Attachment
Dim strPath As String
Dim strName As String
If Item.Class = olMail Then
Set NewMail = Item
End If
strPath = "C:\Reporting Archive\Sales Files\"
If NewMail.Sender = "Dan Donoghue" Then
Set Atts = Item.Attachments
If Atts.Count > 0 Then
For Each Att In Atts
If InStr(LCase(Att.FileName), ".xls") > 0 Then Att.SaveAsFile strPath & Att.FileName
Next
End If
End If
End Sub
Он входит в ThisOutlookSession
в VBE, как только вы положите его в закрытое состояние.и снова откройте Outlook, и он будет работать.
Чтобы сохранить поверх, я бы рекомендовал сначала удалить существующий файл (для этого можно использовать команду kill
, а затем просто сохранить новый).
Вы сделаете это, заменив это:
If InStr(LCase(Att.FileName), ".xls") > 0 Then Att.SaveAsFile strPath & Att.FileName
на это:
If InStr(LCase(Att.FileName), ".xls") > 0 Then
Kill strPath & Att.FileName
Att.SaveAsFile strPath & Att.FileName
End If
в моем коде