将单封电子邮件中的整行发送给不同的电子邮件收件人

问题描述 投票:0回答:1

我需要仔细检查每一行数据,并将整行数据通过电子邮件发送给每个人,分别提供他们的统计数据。

A 栏中的电子邮件地址将用于电子邮件

.To
,TM 电子邮件地址将用于
.CC

数据: Data Example

我设法在网上找到了一些东西。故障发生在

.body
线上。

Sub test2()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range

    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")

    For Each cell In Worksheets("Sheet1").Columns("A").Cells
        Set OutMail = OutApp.CreateItem(0)
        If cell.Value Like "?*@?*.?*" Then
            With OutMail
                .To = Cells(cell.row, "A").Value
                .CC = Cells(cell.row, "B").Value
                .Subject = ""
                .Body = Cells(cell.row, "C:O")
                .Display
            End With
            Cells(cell.row, "P").Value = "sent"
            Set OutMail = Nothing
        End If
    Next cell

    Set OutApp = Nothing                       
    Application.ScreenUpdating = True

End Sub

我意识到你无法将整行数据放入电子邮件中。

我开始使用 RangeToHTML。现在标题和数据行不匹配,因为它们必须分开:
Email when using RangeToHTML

是否最好编写代码来过滤数据表并将 RangeToHTML 复制到电子邮件中,以便将范围保持为一个以包含标题?如果是这样,我将如何循环遍历名称的每个过滤器?每组数据的名称都会发生变化,并且可能有超过 100 行。

excel vba loops for-loop
1个回答
0
投票

要获取正文的内容,请使用以下命令:

Application.WorksheetFunction.TextJoin(vbTab, False, Cells(cell.Row, 3).Resize(, 13))
  • Cells(cell.Row, 3).Resize(,13)
    返回您想要的范围
  • TextJoin
    将所有单元格值与选项卡组合起来。

.Body = Cells(cell.row, "C:O")
由于两个原因引发错误:

  • 单元格需要一列,而不是“C:O”列范围
  • 单元格区域无法返回值
© www.soinside.com 2019 - 2024. All rights reserved.