簡體   English   中英

從Excel復制多列以保持格式,將其保留到Outlook郵件

[英]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樣本數據

Excel樣本數據

使用RangeToStringRangeToString獲取字符串.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM