我有一个电子表格,其中包含我需要循环浏览的电子邮件和信息列表。电子表格表的列结构如下:
Email | Irrelevant Information | Relevant Information
我遇到的问题是我只希望在电子邮件正文中发送相关的信息单元(附加到某些文本的结尾)。我在网上找到了一些可以修改的代码,并且大多数情况下都可以运行。最初,整个电子表格都被添加到每封电子邮件中,但是现在它在.Introduction文本下添加了整行。
Sub EmailRange()
Dim WorkRng As Range
For i = 2 To n '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
我尝试过的事情:
我通过在模块顶部添加Option Explicit
来进行重构(强烈建议使用任何代码)。我将n
定义为最后一行,这是一个假设。我还使用&
来连接简介的文本。经过测试并有效。
Option Explicit
Sub EmailRange()
Dim i As Long
Dim n As Long
n = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row
Dim WorkRng As Range
For i = 2 To n '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