将单元格范围合并到Outlook

时间:2017-11-09 19:16:47

标签: excel-vba vba excel

如何在Outlook的新电子邮件窗口中显示Excel中的范围?

如何使用Excel文件中特定单元格的电子邮件地址填写收件人:和CC:

我有下面的代码用于创建对象。 (办公室13)

public

2 个答案:

答案 0 :(得分:0)

只需在TO:之后添加单元格,它就会获得其中的值。假设您的电子邮件地址位于B1,代码如下所示:

.To = Cells(1, 2).Value

要添加范围,您需要先将其转换为字符串。您需要在电子邮件部分之前添加此部分:

Dim myCell As Range, myString As String
    For Each myCell In Range("A1:A2") 'Change range to suit your needs
        myString = myString & "," & myCell.Value
    Next myCell
'Remove extra comma
myString = Right(myString, Len(myString) - 1)

使用这段代码,您可以将范围转换为每个单元格之间使用逗号的字符串。您可以使用vbLf更改“,”以使另一行上的下一个单元格而不是逗号。

以下是范围为字符串的代码示例:

.Body = "Hi " & Cells(1, 3).Value & "," & vbLf & vbLf _
      & "Here is the main text of my email" & vbLf & myString & vbLf & vbLf_
      & Application.UserName & vbLf & vbLf

在此示例中,它使用C1中的值作为您要写入的人的姓名,预定义文本以及最后用户的名称。

答案 1 :(得分:0)

如果某个范围内有多个电子邮件地址,例如“A1:A3”,则可以创建一个列表并将.To属性设置为等于此列表(.CC的方法相同):

Dim ws As Worksheet, rng As Range, sTo As String

Set ws = ThisWorkbook.Worksheets("Email Addresses")

For Each rng In ws.Range("A1:A3")
    sTo = sTo & rng & ", "                 'creates To: list
Next
    sTo = Left(sTo, Len(sTo) - 2)          'removes last ", "

With objEmail
    .To = sTo
    .subject = ""
    .Body = ""
    .Display
End With