Проверка вложений перед отправкой писем с использованием VBA - PullRequest
0 голосов
/ 17 октября 2018

У меня есть макрос для составления автоматических электронных писем на основе получателей в каждом столбце.

Однако я ищу код, который можно использовать, если вложения, указанные в листе Excel, прикреплены к электронному письму.Если в этом письме отсутствует какое-либо вложение, в нем должно появиться сообщение с названием отсутствующего вложения. СНиП одного листа, прикрепленного

Sub Email1()



Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")

Dim olMail As Outlook.MailItem
Set olMail = olApp.CreateItem(olMailItem)

Dim FLNM As String
Dim AttchmentName As String
Set AddressList = Sheets("Tracker Summary").Range("Y:Z")

Dim AttchmentName1 As String
Dim path As String

Call FetchFileNames

path = ThisWorkbook.path & "/"

Dim i As Integer

i = 5

With olMail

ActiveSheet.Range("A1").Select
.BodyFormat = olFormatHTML

    .Display
    .To = ActiveSheet.Cells(2, i).Value
    .CC = ActiveSheet.Cells(3, i).Value
    .Subject = ActiveSheet.Cells(4, i).Value
    .HTMLBody = ActiveSheet.Cells(5, i).Value & .HTMLBody
    j = 6

    Do Until IsEmpty(Cells(j, i))

    On Error Resume Next

    FLNM = ActiveSheet.Cells(j, i).Value

    AttchmentName1 = Application.WorksheetFunction.VLookup(FLNM, AddressList, 1, True)

    If FLNM = AttchmentName1 Then

    AttchmentName = Application.WorksheetFunction.VLookup(FLNM, AddressList, 2, True)

    .Attachments.Add AttchmentName

    End If

    j = j + 1

    Loop

    '.Display

    End With

Sheets("Tracker Summary").Range("Y:Z").ClearContents

End Sub

1 Ответ

0 голосов
/ 17 октября 2018

Предполагая, что AttachmentName - это полная строка пути к файлу, возможно, ваш код мог бы проверить, существует ли файл заранее.

Ради простоты ...

If Len(Dir(AttachmentName)) = 0 then msgbox "The File " & AttachmentName & " is missing"

... Сразу после того, как вы установите AttachmentName значение на AttchmentName = Application.WorksheetFunction.VLookup(FLNM, AddressList, 2, True)

Очевидно, то же самое для любых других переменных Attachment.

...