Я создаю 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
@ k1dr0ck Верно. Хотел бы по электронной почте каждый PDF на каждый адрес электронной почты. PDF-файл представляет собой выписку, уникальную для каждого идентификатора (счета-фактуры). Адреса электронной почты находятся в той же вкладке/таблице excel, что и столбцы идентификационных номеров (разные).
@ k1dr0ck Больше контекста - список идентификаторов, которые я использую в качестве «диапазона» в своем коде, взят из той же таблицы, что и адрес электронной почты. Пытаясь включить второй список (электронные письма), чтобы соответствовать соответствующим идентификаторам.
список идентификаторов находится в столбце M правильно? какие столбцы являются адресами электронной почты?
@ k1dr0ck Ага. Список идентификаторов находится в столбце M. Список адресов электронной почты находится в столбце N.
пытаться
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
Вы хотели отправить каждый PDF-файл на каждый адрес электронной почты? где находится адрес электронной почты?