VBA / Excel - 按表中的值分组并发送电子邮件

时间:2018-01-11 07:38:50

标签: excel vba lotus-notes

我有一个很大的列表,我有不同的公司和组织。我当前的VBA代码遍历每个表行,并为每一行发送一封电子邮件。

然而,我需要实现的是,可能有公司拥有相同的上级组织 - 在这种情况下,我不想发送电子邮件对于每个公司,但宁愿发送一个电子邮件给组织,包括所有关联公司。

我试图在下表中说明它。

enter image description here

因此,对于记录#1,我会一如既往地发送电子邮件。但是对于[2-3],我想发送一个电子邮件,其中包括公司名称2和3。 同样适用于记录[4-6],它还应发送一个电子邮件,但包括公司名称#4,#5和#6。

示例:

您好组织B

请查看您所在组织的以下公司:

  • 公司2
  • 公司3

我目前的代码: 下面是我当前的代码,它遍历所有表行并发送邮件:

 'Count table rows
 Set tbl = oWorksheet.ListObjects("DataTable")
 TableRows = tbl.ListRows.Count
 TableRows = TableRows + 1 'Skips the header
 iRow = 2 'Skip the header

 Do While iRow <= TableRows
       Set oNotesMail = oMailDB.CreateDocument
       oNotesMail.Form = "Memo"
       oNotesMail.SendTo = oWorksheet.Cells(iRow, 5).Value
       oNotesMail.Subject = "Company check"
       oNotesMail.Body = "Hi " & oWorksheet.Cells(iRow, 2) & "Please check"
       oNotesMail.SaveMessageOnSend = True
       oNotesMail.PostedDate = Now()
       oNotesMail.Send 0, oWorksheet.Cells(iRow, 5).Value
       Set oNotesMail = Nothing
    Loop

因此,上面的代码会为每一行发送一封电子邮件(在Lotus Notes中)。

如何实现上述示例?

请注意

  • 该表格将始终按照&#39;组织&#39; - 希望当代码遍历行时,这将有所帮助。

0 个答案:

没有答案