[英]Copy multiple columns, keeping formatting, from Excel to Outlook mail
我想將郵件發送到Col A中的每個收件人(單獨的郵件),col B中的主題,並將數據從Col D發送到Excel中的Col I作為郵件正文。
我發現以下代碼,該代碼對於電子郵件地址和主題運行正常。
在主體中,它僅從一列中選擇數據(Col D)。 如何使用格式更新正文中的范圍D2:I2?
Option Explicit
Sub Sample()
Dim OutApp As Object, OutMail As Object
Dim ws As Worksheet
Dim i As Long, lRow As Long
Set OutApp = CreateObject("Outlook.Application")
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
For i = 1 To lRow
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ws.Range("B" & i).Value
.Cc = ""
.Subject = ws.Range("C" & i).Value
.Body = ws.Range("D" & i).Value
.Display
End With
Next i
End With
End Sub
Excel樣本數據
使用RangeToString
從RangeToString
獲取字符串.Body
如何將范圍轉換為字符串(VBA)?
Function RangeToString(ByVal myRange as Range) as String
RangeToString = ""
If Not myRange Is Nothing Then
Dim myCell as Range
For Each myCell in myRange
RangeToString = RangeToString & "," & myCell.Value
Next myCell
'Remove extra comma
RangeToString = Right(RangeToString, Len(RangeToString) - 1)
End If
End Function
並像這樣使用它:
.Body = RangeToString(ws.Range(ws.Cells(2,"D"),ws.Cells(i, "I")))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.