Excel VBA代码将打印区域编写为PDF和电子邮件

时间:2019-04-16 03:39:32

标签: excel vba email pdf printing

  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. 如果更容易从中提取电子邮件地址,则该电子邮件地址也位于“ Form” G5中。

  5. 公式= Indirect(“ xxx&RowIndex”)更新每个新闻稿,而我当前的代码会生成一封电子邮件,其中的打印范围嵌入在新闻稿中。我以前修改了一个例程,为要邮寄的每个成员打印时事通讯。可以通过电子邮件发送,但需要手动发送。我只是想修改此代码以打印为PDF,然后自动发送电子邮件。

  6. 我当前的代码会将“打印区域”发送到Outlook正文以接收电子邮件,但是必须手动输入电子邮件地址,并且“打印区域”无法在移动屏幕上正确显示。 PDF是必需的。

  7. 我在A和B列的名为“数据”的工作表中有一个成员姓名列表

  8. 如果更容易从中提取电子邮件地址,则该电子邮件地址也位于“ Form” G5中。

  9. 公式= Indirect(“ xxx&RowIndex”)更新每个新闻稿,而我当前的代码会生成一封电子邮件,其中的打印范围嵌入在新闻稿中。我以前修改了一个例程,为要邮寄的每个成员打印时事通讯。可以通过电子邮件发送,但需要手动发送。我只是想修改此代码以将其打印为PDF,然后自动发送电子邮件。

    Public Const APPNAME As String =“ Sample-1” 显式选项

    子PrintForms()     昏暗的StartRow作为整数     昏暗EndRow作为整数     昏暗的消息作为字符串     昏暗MailDest作为字符串     昏暗的整数

    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        Range(“ RowIndex”)= i        ActiveSheet.Range(“ B7:I48”)。Select        ActiveWorkbook.EnvelopeVisible = True        使用ActiveSheet.MailEnvelope           .Item.to =“(此处的电子邮件地址)”           .Item.Subject =“每月一次的会议”           项目发送           '.Item.Display       结束于     接下来我 结束Sub

0 个答案:

没有答案