将 Excel 中命名范围内的值获取到 Outlook 电子邮件中
Get values from a named range in Excel into an Outlook email
我需要将工作簿中指定范围内的值放入 Outlook 邮件中。
在我名为“设置”的选项卡上,我有一个名为 EmailTo 的单元格 C3:C8 命名范围。每行都有一个不同的电子邮件地址。
.To = Range("EmailTo")
报错
object does not support this method
Public Sub Outlook()
Dim outlook As Object
Dim email As Object
Set outlook = CreateObject("Outlook.Application")
Set email = outlook.CreateItem(olMailItem)
With email
.To = Range("EmailTo")
.Display
End With
End Sub
当有一个单元格被赋予一个命名范围时它起作用,但当命名范围分布在多个单元格中时不起作用。
您应该将命名范围内的电子邮件地址列为以分号分隔的字符串。
Public Sub Outlook()
Dim Outlook As Object
Dim email As Object
Dim strTo As String
Dim i As Long
Set Outlook = CreateObject("Outlook.Application")
Set email = Outlook.CreateItem(olMailItem)
With Range("EmailTo").Cells
For i = 1 To .Count
If Not IsEmpty(.Item(i)) Then 'skip empty cells
strTo = strTo & "; " & Trim$(.Item(i).Value) 'add all e-mail addresses with delimiter
End If
Next i
strTo = Mid(strTo, 3) 'remove leading semicolon and space
End With
With email
.To = strTo
.Display
End With
End Sub
我需要将工作簿中指定范围内的值放入 Outlook 邮件中。
在我名为“设置”的选项卡上,我有一个名为 EmailTo 的单元格 C3:C8 命名范围。每行都有一个不同的电子邮件地址。
.To = Range("EmailTo")
报错
object does not support this method
Public Sub Outlook()
Dim outlook As Object
Dim email As Object
Set outlook = CreateObject("Outlook.Application")
Set email = outlook.CreateItem(olMailItem)
With email
.To = Range("EmailTo")
.Display
End With
End Sub
当有一个单元格被赋予一个命名范围时它起作用,但当命名范围分布在多个单元格中时不起作用。
您应该将命名范围内的电子邮件地址列为以分号分隔的字符串。
Public Sub Outlook()
Dim Outlook As Object
Dim email As Object
Dim strTo As String
Dim i As Long
Set Outlook = CreateObject("Outlook.Application")
Set email = Outlook.CreateItem(olMailItem)
With Range("EmailTo").Cells
For i = 1 To .Count
If Not IsEmpty(.Item(i)) Then 'skip empty cells
strTo = strTo & "; " & Trim$(.Item(i).Value) 'add all e-mail addresses with delimiter
End If
Next i
strTo = Mid(strTo, 3) 'remove leading semicolon and space
End With
With email
.To = strTo
.Display
End With
End Sub