如何解决使用第 2 行变量发送电子邮件时,Excel 无法使用第 3 行的数据识别我的循环
我无法让 excel 将第三行视为单独的数据行。我的代码正在将第三行的所有附件添加到电子邮件中,其中包含从第二行生成的信息。我怎样才能让它循环第 2 行到最后一行数据。我正在尝试创建一个 excel,它将使用每个单元格中填写的信息通过电子邮件发送变量数据。我正在使用当前的代码,因为这是我让签名行工作的唯一方法。
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet1")
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim I As Integer
Dim last_row As Integer
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
last_row = Application.WorksheetFunction.CountA(sh.Range("A:A"))
For I = 2 To last_row
.display
.SentOnBehalfOfName = sh.Range("A" & I).Value
.To = sh.Range("B" & I).Value
.CC = sh.Range("C" & I).Value
.Subject = sh.Range("D" & I).Value
.HTMLBody = strbody & "<br>" & .HTMLBody
If sh.Range("F" & I).Value <> "" Then
.attachments.Add sh.Range("F" & I).Value
End If
If sh.Range("G" & I).Value <> "" Then
.attachments.Add sh.Range("G" & I).Value
End If
If sh.Range("H" & I).Value <> "" Then
.attachments.Add sh.Range("H" & I).Value
End If
我不认为代码的最后一部分值多少它只是 strbody =,我最初希望主体也是一个变量。这提出了无法使用签名行的永无止境的问题。任何帮助将不胜感激我像鸭子一样被困。
解决方法
我认为您的想法可能如下所示。该代码创建了一个电子邮件文本,其中包括工作表中的一些片段,然后可以将这些片段分配给 HTMLbody
。
Dim Txt As String
Dim Line As String
Dim C As Long
Txt = "Dear Sir," & vbNewLine & vbNewLine & _
"Please take note of the following." & vbNewLine
Line = ""
For C = 6 To 8
With sh.Cells(i,C)
If Len(.Value) Then
If Len(Line) Then Line = Line & ","
Line = Line & .Value
End If
End With
Next C
If Len(Line) Then Txt = Txt & Line & vbNewLine
Txt = Txt & "Please get back to me ASAP." & vbNewLine & vbNewLine
Txt = Txt & " Regards" & vbNewLine & "John Doe"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。