【发布时间】:2020-02-13 04:52:41
【问题描述】:
我有一个电子表格,其中列出了我需要遍历的电子邮件和信息列表。电子表格表列结构如下:
Email | Irrelevant Information | Relevant Information
我遇到的问题是我只希望在电子邮件正文中发送相关信息单元格(附加到某些文本的末尾)。我在网上找到了一些我可以修改的代码,而且大部分都可以工作。最初整个电子表格被添加到每封电子邮件中,但现在它正在添加 .Introduction 文本下方的整个行。
Sub EmailRange()
Dim WorkRng As Range
For i = 2 To Ubound 'starting at 2 to skip column headers
On Error Resume Next
Set WorkRng = Worksheets("Sheet1").Rows(i)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Text" + Worksheets("Sheet1").Cells(i, 3).Value 'append relevant info to text
.Item.To = Worksheets("Sheet1").Cells(i, 1) 'cycling through each email
.Item.Subject = "Subject"
.Item.send
End With
Application.ScreenUpdating = False
Next i
End Sub
我尝试过的事情:
- 删除范围定义。这会导致脚本恢复为附加整个工作表。
- 将范围设置为相关信息单元格。整行仍在添加到消息中。
- 将 ActiveSheet.MailEnvelope 更改为 ActiveCell.MailEnvelope。编译正常,但不发送电子邮件。
【问题讨论】:
-
你在哪里定义
n?n应该是范围中的最后一行吗? -
根据Ron DeBruin's website,我认为只使用一个单元格的值是不可能的。您是否尝试过通过 Outlook 执行此操作?
-
n 只是最后一行的占位符,我更新了代码示例以使其更加清晰。我在 Ron 的网站上花了一些时间,但没有找到答案(不过,也许我没有问正确的问题)。我没有通过 Outlook 尝试过,我什至没有考虑从那个角度尝试。
-
是的,如果您使用的是 Outlook,那么您可以这样做。
MailEnvelope非常有限。 -
试试我之前评论中的链接,并在使用 Excel 中的 MailEnvelope 时通读该链接。如果您想尝试使用 Outlook,这里有一个很棒的链接,位于 SO Sending Emails through Outlook based on cell value