如何在Outlook的新电子邮件窗口中显示Excel中的范围?
如何使用Excel文件中特定单元格的电子邮件地址填写收件人:和CC:
我有下面的代码用于创建对象。 (办公室13)
public
答案 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