Outlook邮件与Excel中:与正文文本和variables的问题

我无法使我的.body文本正常工作。

我可以得到它在Outlook中创build项目。 “To:”和“Subject”是正确的,但是正文不是。
我可以把它从“你好”包括到“以下服务行:”或包括“对y = 2到LR1”到下一个y。 我希望它包括两个。 我如何连接这两个部分? – 解决了!

If匹配函数应该与sht3.range(“C”&i)匹配sht1.range(“B”&y)。 在“y”循环中,y从2变到49,而variablesi应该是恒定的,直到循环完成。 然后它应该移动到下一个我再做一遍。 这不起作用,因为正文文本包含variablesy中的所有行。 – 解决了!

Sub Test() Dim OutApp As Object Dim OutMail As Object Dim Sht1 As Worksheet Dim Sht2 As Worksheet Dim Sht3 As Worksheet Dim i As Long Dim y As Long Dim x As Long Dim LR1 As Long Dim LR2 As Long Set Sht1 = ThisWorkbook.Sheets("Sheet1") Set Sht2 = ThisWorkbook.Sheets("Sheet2") Set Sht3 = ThisWorkbook.Sheets("Sheet3") LR1 = Sht1.Cells(Sht1.Rows.Count, "B").End(xlUp).Row LR2 = Sht3.Cells(Sht3.Rows.Count, "C").End(xlUp).Row Application.ScreenUpdating = False Set OutApp = CreateObject("Outlook.Application") On Error GoTo Cleanup For i = 2 To LR2 If Not IsEmpty(Sht3.Range("C" & i)) Then Sht3.Activate Sht3.Range("C" & i).Select Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail .To = Sht3.Range("C" & i).Offset(ColumnOffset:=1) .Subject = "OE input sheet " & Sht3.Range("C" & i) & ": Service Delivered = NO" .body = "Hello " & ActiveCell.Offset(ColumnOffset:=-1).Value & "." _ & vbNewLine & vbNewLine & _ "We have noticed, that you have indicated Service Deliverd = NO, while the service line still contains a value. " _ & vbNewLine & vbNewLine & _ "We are referring to the following service lines:" _ For y = 2 To LR1 Sht1.Activate Sht1.Range("B" & y).Select If Sht1.Range("B" & y) = Sht3.Range("C" & i) Then .body = .body & vbNewLine & ActiveCell.Offset(ColumnOffset:=1).Value End If Next y .Save End With On Error GoTo 0 Set OutMail = Nothing End If Next i Cleanup: Set OutApp = Nothing Application.ScreenUpdating = True End Sub 

提前致谢

mailItem的.body属性不会将附加信息附加到正文中,它完全replace正文中的信息。

所以当你第一次用“你好”的部分来设置的时候,邮件正文就包含了这个信息。 当您在循环中再次设置它时,它现在只包含您在循环中设置的信息。

将循环中的行更新为:

  .body = .body & vbNewLine & ActiveCell.Offset(ColumnOffset:=1).Value 

它会将新信息附加到电子邮件正文。