Код Excel VBA для записи области печати в формате PDF и электронной почты - PullRequest
0 голосов
/ 16 апреля 2019
  1. Я создаю список рассылки ежемесячных собраний клубов, и мне не хватает знаний и опыта в VBA.
  2. Я был бы очень признателен за любую помощь в этом, которую можно оказать.

    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”
    
  3. У меня есть список имен членов в рабочей таблице под названием «Данные» в столбцах A и B

  4. Адрес электронной почты также находится в «Форма ”G5, если ее легче извлечь из нее.

  5. Формула = Косвенная (“ xxx & RowIndex ”) обновляет каждую рассылку, и мой текущий код создает электронное письмо с Print Range, встроенным вНовостная рассылка.Ранее я адаптировал подпрограмму, в которой печатался бюллетень для каждого участника, которого нужно отправить по почте.Это можно по электронной почте, но вручную.Я просто хочу изменить этот код для печати в PDF, а затем автоматически отправлять электронные письма.

  6. Мой нынешний код отправит область печати в тело Outlook для электронной почты, но адреса электронной почты должны бытьвведен вручную, и область печати не отображается правильно на экранах мобильных устройств.Требуется PDF.

  7. У меня есть список имен членов на рабочем листе под названием «Данные» в столбцах A и B

  8. Электронная почтаадрес также указан в «Форме» G5, если его легче извлечь из него.

  9. Формула = 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...