- Я создаю список рассылки ежемесячных собраний клубов, и мне не хватает знаний и опыта в VBA.
Я был бы очень признателен за любую помощь в этом, которую можно оказать.
Use =INDIRECT("Data!A" &RowIndex) to update cells in Print Area
Send Print Area to PDF and email to member shown in =INDIRECT("Data!A" &RowIndex)
Loop through names in =INDIRECT("Data!A" &RowIndex)
Member Last Name in cell =INDIRECT(Data!B1 &RowIndex)
Arrears in cell =INDIRECT(Data!C1 &RowIndex)
Dues in cell =INDIRECT(Data!D1 &RowIndex)
Total in cell =INDIRECT(Data!E1 &RowIndex)
Email address in cell =INDIRECT(Data!F1 &RowIndex)
The email body in Form cells B2:I48
The email subject is “Monthly Meeting”
У меня есть список имен членов в рабочей таблице под названием «Данные» в столбцах A и B
Адрес электронной почты также находится в «Форма ”G5, если ее легче извлечь из нее.
Формула = Косвенная (“ xxx & RowIndex ”) обновляет каждую рассылку, и мой текущий код создает электронное письмо с Print Range, встроенным вНовостная рассылка.Ранее я адаптировал подпрограмму, в которой печатался бюллетень для каждого участника, которого нужно отправить по почте.Это можно по электронной почте, но вручную.Я просто хочу изменить этот код для печати в PDF, а затем автоматически отправлять электронные письма.
Мой нынешний код отправит область печати в тело Outlook для электронной почты, но адреса электронной почты должны бытьвведен вручную, и область печати не отображается правильно на экранах мобильных устройств.Требуется PDF.
У меня есть список имен членов на рабочем листе под названием «Данные» в столбцах A и B
Электронная почтаадрес также указан в «Форме» G5, если его легче извлечь из него.
Формула = Indirect («xxx & RowIndex») обновляет каждую рассылку, и мой текущий код создает электронное письмо сДиапазон печати встроен в новостное письмо.Ранее я адаптировал подпрограмму, в которой печатался бюллетень для каждого участника, которого нужно отправить по почте.Это можно по электронной почте, но вручную.Я просто хочу изменить этот код для печати в PDF, а затем автоматически отправлять электронные письма.
Public Const APPNAME As String = "Sample-1" Параметр Явный
Sub PrintForms () DimStartRow как целое число Dim EndRow как целое число Dim Msg как строка Dim MailDest как строка Dim i как целое число
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Sheets("Form").Activate
StartRow = Range("StartRow")
EndRow = Range("EndRow")
If StartRow > EndRow Then
Msg = "ERROR" & vbCrLf & "The starting row must be less than the ending row!"
MsgBox Msg, vbCritical, APPNAME
End If
для i = диапазон StartRow до EndRow ("RowIndex") = i ActiveSheet.Range ("B7: I48") .Выберите ActiveWorkbook.EnvelopeVisible = True с ActiveSheet.MailEnvelope .Item.to =" (адреса электронной почты здесь) ".Item.Subject =" Ежемесячное собрание ".Item.Send '.Item.Display Закончить со следующим i Завершить Sub