Макросы для отправки прикрепляют разные файлы к нескольким отдельным электронным письмам, vba - PullRequest
0 голосов
/ 26 января 2019

Я компьютерный техник, а не программист, но на моей новой работе меня попросили закончить макрос в excel (vba). Он состоит из списка номеров удостоверений личности в одном из столбцов (количество ячеек меняется каждый раз, когда он используется, однажды вы можете поместить 20 человек и еще 12, например) и электронные письма в другом столбце. В папке есть несколько PDF-документов, имя которых является удостоверением личности человека, который указан в Excel.

Они спрашивают меня, что, заказав удостоверение личности в алфавитном порядке, возьмите удостоверение личности и электронную почту. Идентификационная карта будет служить для поиска вашего соответствующего PDF-файла и добавления его в качестве вложения с целью отправки по электронной почте, кому? там ячейка используется с данными электронной почты. Это должно быть сделано с каждой из существующих строк, возьмите файл pdf, чтобы прикрепить его, и отправьте электронное письмо на адрес этой же строки, пока на листе не останется больше строк.

Может кто-нибудь сказать мне, как это сделать, или подсказать мне функции, которые мне нужны?

Спасибо.

Графическая идея:

1 Ответ

0 голосов
/ 26 января 2019

Макрос в настоящее время установлен на .Display электронное письмо и не отправляется. После того, как вы закончили выполнение тестов, вы можете изменить это значение на .Send, чтобы фактически отправить электронное письмо.

Вам также необходимо обновить значение strLocation. В кавычках вы должны указать местоположение папки, в которой находятся все ваши целевые PDF-файлы.

Порядок ваших ячеек здесь не имеет значения, если каждая строка связана с одним человеком.

Надеемся, что эти электронные письма являются внутренними - вы не должны использовать это для внешних списков рассылки, так как вы не можете предлагать возможность отказаться от подписки. Outlook может пометить / заблокировать вашу учетную запись, если вас подозревают в спаме.

Предполагается, что значения в Column C являются действительными адресами электронной почты, которые будут распознаваться Outlook как есть. (urdearboy@email.com)


Sub CorpCard()

Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range

Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")

On Error GoTo cleanup

For Each cell In Columns("C").Cells.SpecialCells(xlCellTypeConstants)
    If cell.Value Like "?*@?*.?*" Then
        Set OutMail = OutApp.CreateItem(0)
        On Error Resume Next
        With OutMail
            .SentOnBehalfOfName = "[your associated Outlook email here]"
            .to = cell.Value
                .Subject = "Subject goes here"
                .Body = "Hi " & Range("B" & cell.Row).Value & "," _

                'Body to be patsed here

            strLocation = "C:\Users\urdearboy\Desktop\File Name\" & Cells(cell.Row, "D").Value & ".pdf"
            .Attachments.Add (strLocation)
        .Display
        '.Send
        End With

        On Error GoTo 0
        Set OutMail = Nothing
    End If
Next cell

cleanup:
    Set OutApp = Nothing
    Application.ScreenUpdating = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...