从 Excel 中的命名范围获取值到 Outlook 电子邮件中

问题描述 投票:0回答:2

我需要将工作簿中指定范围的值放入 Outlook 邮件中。

在名为“设置”的选项卡上,我有一个单元格 C3:C8 的命名范围,名为 EmailTo。每行都有不同的电子邮件地址。

.To = Range("EmailTo")
给出错误

对象不支持此方法

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

当有一个单元格被赋予命名范围时它会起作用,但当命名范围分布在多个单元格中时则不起作用。

excel vba email outlook range
2个回答
0
投票

您应该将指定范围内的电子邮件地址列出为以分号分隔的字符串。

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

-1
投票

谢谢先生!这对我帮助很大!

© www.soinside.com 2019 - 2024. All rights reserved.