Электронные PDF-файлы, созданные из списка в Excel

Я создаю PDF-файлы из списка из более чем 100 элементов. Я хочу отправить эти PDF-файлы по электронной почте.

Примечание: список представляет собой диапазон уникальных идентификационных номеров, которым соответствуют адреса электронной почты.

Создайте PDF-файлы из списка (я сохраняю PDF-файлы в папку):

Sub SavePDFsFromList()
    
    'Declare the Variables
    Dim ws As Worksheet
    Dim rngID As Range
    Dim rngListStart As Range
    Dim rowsCount As Long
    Dim i As Long
    Dim pdfFilePath As String
    Dim tempPDFFilePath As String
    
    'Stop the screen updating while running
    Application.ScreenUpdating = False
    
    'Reference the tab the pdf will be created from
    Set ws = ActiveWorkbook.Sheets("Statement")
    
    'Cell that generates information on each pdf
    Set rngID = ws.Range("A1")
    
    'Reference the start of the  ID List
    Set rngListStart = ws.Range("M4")
    
    'Count the rows in the ID List
    rowsCount = rngListStart.CurrentRegion.Rows.Count - 1
    
    'Create the PDF File Name
    pdfFilePath = "C:\Test Folder\PDF Export\Example - [ID].pdf"
    
    For i = 1 To rowsCount
    
        'Change the current ID
        rngID.Value = rngListStart.Offset(i - 1, 0).Value
    
        'Replace [ID] with ID Value
        tempPDFFilePath = Replace(pdfFilePath, "[ID]", rngID.Value)
    
        'Create the PDF
        ws.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=tempPDFFilePath
    
    Next i
    
    'Restart the screen updating
    Application.ScreenUpdating = True
    
End Sub

Вы хотели отправить каждый PDF-файл на каждый адрес электронной почты? где находится адрес электронной почты?

k1dr0ck 14.04.2023 02:34

@ k1dr0ck Верно. Хотел бы по электронной почте каждый PDF на каждый адрес электронной почты. PDF-файл представляет собой выписку, уникальную для каждого идентификатора (счета-фактуры). Адреса электронной почты находятся в той же вкладке/таблице excel, что и столбцы идентификационных номеров (разные).

J Church 14.04.2023 14:41

@ k1dr0ck Больше контекста - список идентификаторов, которые я использую в качестве «диапазона» в своем коде, взят из той же таблицы, что и адрес электронной почты. Пытаясь включить второй список (электронные письма), чтобы соответствовать соответствующим идентификаторам.

J Church 14.04.2023 16:29

список идентификаторов находится в столбце M правильно? какие столбцы являются адресами электронной почты?

k1dr0ck 16.04.2023 01:26

@ k1dr0ck Ага. Список идентификаторов находится в столбце M. Список адресов электронной почты находится в столбце N.

J Church 16.04.2023 19:15
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
5
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

пытаться

Sub SavePDFsFromList()

    'Declare the Variables
    Dim ws As Worksheet
    Dim rngID As Range
    Dim rngListStart As Range
    Dim rowsCount As Long
    Dim i As Long
    Dim pdfFilePath As String
    Dim tempPDFFilePath As String

    'Stop the screen updating while running
    Application.ScreenUpdating = False

    'Reference the tab the pdf will be created from
    Set ws = ActiveWorkbook.Sheets("Statement")

    'Cell that generates information on each pdf
    Set rngID = ws.Range("A1")

    'Reference the start of the  ID List
    Set rngListStart = ws.Range("M4")

    'Count the rows in the ID List
    rowsCount = rngListStart.CurrentRegion.Rows.Count - 1

    'Create the PDF File Name
    pdfFilePath = "C:\Test Folder\PDF Export\Example - [ID].pdf"

    For i = 1 To rowsCount

        'Change the current ID
        rngID.Value = rngListStart.Offset(i - 1, 0).Value

        'Replace [ID] with ID Value
        tempPDFFilePath = Replace(pdfFilePath, "[ID]", rngID.Value)

        'Create the PDF
        ws.ExportAsFixedFormat Type:=xlTypePDF, _
                               Filename:=tempPDFFilePath
        
        ' START-EMAIL EACH PDF TO EACH CORRESPONDING RECEPIENT IN COLUMN N
    
        With CreateObject("outlook.application").CreateItem(0)
            .To = ws.Cells(i + 3, "N").Value
            .Subject = "This is the subject"
            .Body = "This is the body"
            .Attachments.Add tempPDFFilePath
            .Display 'COMMENT THIS LINE THEN UNCOMMENT .SEND LINE AFTER TESTING
            '.Send
        End With
    
        'END-EMAIL EACH PDF TO EACH CORRESPONDING RECEPIENT IN COLUMN N

    Next i

    'Restart the screen updating
    Application.ScreenUpdating = True

Конец сабвуфера

Ух ты. Спасатель жизни! Очень ценю ваше время. Спасибо! @k1dr0ck

J Church 18.04.2023 01:16

Другие вопросы по теме